Vagrant Upgrade to 1.8.1

表題の通り。”1.8.0“がリリースされたとのことなのでupgradeする。

■ 環境

  • Mac OSX (10.10.5)
  • Vagrant 1.7.4 → 1.8.1

■ upgrade


$ vagrant version
Installed Version: 1.7.4
Latest Version: 1.8.0

To upgrade to the latest version, visit the downloads page and
download and install the latest version of Vagrant from the URL
below:

  http://www.vagrantup.com/downloads.html

If you're curious what changed in the latest release, view the
CHANGELOG below:

  https://github.com/mitchellh/vagrant/blob/v1.8.0/CHANGELOG.md
$

表示されたURLにアクセスする。

vagrant-001

vagrant_1.8.1.dmg“がダウンロードされた。あれ?”1.8.0“かと思ったのだが”1.8.1“のようである。ダブルクリックして展開。

vagrant-002

Vagrant.pkg“をダブルクリック。

vagrant-003

vagrant-004

vagrant-005

あとはインストールして完了。

$ vagrant version
Installed Version: 1.8.1
Latest Version: 1.8.0

You're running an up-to-date version of Vagrant!
$

表記が微妙に違うところが気になるが問題ないだろう。

以上。

Install Docker Engine to Ubuntu/Vivid

表題の通り。

■ 環境

  • Vagrant 1.7.4
  • Ubuntu Vivid 15.04
  • Mac OSX (10.10.5)

■ インストール

公式のドキュメントを参考にインストールをする。

Installation on Ubuntu
https://docs.docker.com/engine/installation/ubuntulinux/

$ vagrant up
 :
$ vagrant ssh
Welcome to Ubuntu 15.04 (GNU/Linux 3.19.0-42-generic x86_64)
  :

キーを追加。

$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

レポジトリの追加。

$ sudo vi /etc/apt/sources.list.d/docker.list

上記ファイルに記述するのは下記の通り。

deb https://apt.dockerproject.org/repo ubuntu-vivid main

あとはインストールするだけ。

$ sudo apt-get update
 :
$ sudo apt-get install docker-engine
 :
$ sudo docker version
Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:16:54 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:16:54 UTC 2015
 OS/Arch:      linux/amd64
$

vagrant“ユーザを”docker“のグループに入れるとさらに使い勝手が良いだろう。

$ sudo usermod -G docker vagrant

以上。

■ 関連

Docker Multi-Host Networking (1)

Dockerにおいて表題の通り。いくつかのエントリに分けて実現する。

■ 環境

  • Mac OSX (10.10.5)
  • VirtualBox

■ やりたいこと

Get started with multi-host networking
https://docs.docker.com/engine/userguide/networking/get-started-overlay/

上記で書かれている複数のDockerホスト間でのネットワーク接続を試したい。上記では`docker-machine`を利用しているが、最終的には自身で構築したホストで稼働させている複数のDockerで実現させたいので、Mac上にVirtualBoxでVMを複数稼働させ、そこにDockerをインストールし”Multi-Host Networking“を実現させたい。

これができると何が良いかというと、複数のDockerホストによる”Dockerクラスタ“を、”Swarm“でアクセス先を一つにする事で、あたかも1つの”Dockerホスト“に対して操作を行っているように扱える事かと思う。また、コンテナが各ホストに分散されて実行されても、コンテナ間のアクセスが可能となる。

以前のversionでは、”Swarm“で分散自体はできてもコンテナ間のアクセスは、同じ”Dockerホスト“で稼働しているコンテナ間でのみであったと記憶している。その為、”–link“オプションを使用したコンテナは全て同じ”Dockerホスト“上で実行されていた。もちろんネットワーク的には同じ”Dockerホスト“上で実行される方が良いのではあるが、1つの”Dockerホスト“で実行可能以上のコンテナが”–link“で接続しようとした場合、破綻するような気がする。今回の”Multi-Host Networking“によって回避できる。

■ 構成

イメージ的には下図のようになる。

multihost-docker-001

DockerのドキュメントではKVSに”Consul“を使用しているが、自身は”ZooKeeper“の方が知見があるのでこちらを採用する。また既にMacにはインストールして稼働させているものがあるのでそれを利用する。

最終的に、”docker1“のVMで稼働させているMongoDBに対して、”docker2“のVM上に稼働させた”MongoDBのクライアント“で接続できるかを確認しようと思う。

■ 順序

Dockerのドキュメントでは下記の順序の通り。

  1. Set up a key-value store
  2. Create a Swarm cluster
  3. Create the overlay Network
  4. Run an application on your Network
  5. Check external connectivity

Step6“は`docker-compose`での利用方法なので割愛する。

これを自身の環境では順にやっていくつもりである。今回のエントリでは、まずは環境構築編として”Step1“の前の事を行う。

■ Step 0

Dockerのドキュメントにある通り、kernelが”3.16“以上である必要がある。自身が普段よく使っているVagrantの”centos/7“のboxではkernelのversionが”3.10“であるので、今回は”ubuntu/vivid64“を利用する事にした。

$ vagrant box add ubuntu/vivid64
$ vagrant init ubuntu/vivid64
$ vagrant up
  :
$ vagrant ssh
  :
vagrant@vagrant-ubuntu-vivid-64:~$ uname -a
Linux vagrant-ubuntu-vivid-64 3.19.0-42-generic #48-Ubuntu SMP Thu Dec 17 22:54:45 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
vagrant@vagrant-ubuntu-vivid-64:~$ exit
logout
Connection to 127.0.0.1 closed.
$
$ vagrant destroy
  :

前述のイメージの通り、Vagrantで稼働させるVMは2つ使用するのでVagrantfileも下記のように書き換えた。

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/vivid64"

  config.vm.define "docker1" do |node|
    node.vm.network "private_network", ip: "192.168.33.11"
    node.vm.hostname = "docker1"
  end

  config.vm.define "docker2" do |node|
    node.vm.network "private_network", ip: "192.168.33.12"
    node.vm.hostname = "docker2"
  end

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
  end
end

IPをそれぞれ振り、メモリもそれぞれ2GBにしている。

今回はここまで。次回は”Step1“の内容から始める。

以上。

■ 関連

MapOption – keyboardShortcuts

Google Maps JavaScript APIにおいて表題のオプションを試す。

■ 環境

  • Google Maps JavaScript API v3

■ keyboardShortcuts

Googple Mapsで使用できるキーボードショートカットを使えるようにするかどうか、を指定する。デフォルトでは”true“で使用可能である。

var map;
function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 35.681382, lng: 139.766084},
    zoom: 15,
    keyboardShortcuts: false
  });
}

ショートカットが使えなくなったはずである。

以上。

■ 関連


GoogleMapsのキーボードショートカット

表題の通り。Google Maps API関連でいろいろ見ているとショートカットもあるらしいので何が使えるのか確認してみた。

■ 環境

  • Mac OSX (10.10.5)
  • Google Chrome

■ 移動

東西南北へ移動ができる。

  • : 北へ移動
  • : 南へ移動
  • : 東へ移動
  • : 西へ移動

PageUp“や”PageDown“でも移動できるようであるが、Macなので該当のキーがなくわからなかった。

■ 拡大/縮小

Zoom“を変更できる。

  • +: 拡大
  • -: 縮小

=“でも拡大が可能であった。

他にもあるのかもしれない。公式のヘルプやドキュメントでは該当の記述を探せなかった。

以上。