vagrant on macでWEB管理画面(rancher)使ってdocker管理
・vagrant便利だけど、仮想マシンをエクスポートして共有とか無理。
・docker使いたいけど、コンテナ管理とか面倒。
なんて色々話が上がっていたので、docker使ってコンテナ化してポータビリティ保ちつつ、管理だけはなんとなくvagrant上に立てたrancher使いましょうってお話です。
自分的には漢ならコマンド一本で生きろって思ってしまうのですが、無理強いは出来ないので、こういうのもあるよって紹介。
rancherってなんぞ?
rancherはdocker周りの運用を助けてくれるオープンソースプロジェクトです。WEB管理ツールも持ちつつ、APIなんかもあるので、独自のIaaS的に運用が出来ます。本番環境ではまだ使ったことないですが、手元の運用としては問題ないと思います。ガチで使うと本当に便利だったりするので検証みてもよいと思いますよ
vagrantでrancherを動かす(15分)
rancherではvagrant上で動かすことを想定したファイルなんかも用意しているので
時間をかけずに試すことが出来ます。というわけでやってみましょう。
※細かいの見たい人は以下参照
https://github.com/rancher/os-vagrant
git clone
$ cd <自分の好きな場所>
$ git clone https://github.com/rancher/os-vagrant.git
Vagrantfileを更新
VagrantのVMマシンポート8080をホストマシンの8080にポートマッピングをして
rancherに直接アクセスしてみましょう。
$ cd os-vagrant
$ vi Vagrantfile
forwarded_portの記述を追記
ip = "172.19.8.#{i+100}"
node.vm.network "private_network", ip: ip
node.vm.hostname = hostname
↓
ip = "172.19.8.#{i+100}"
node.vm.network "private_network", ip: ip
node.vm.network :forwarded_port, guest: 8080, host: 8080
node.vm.hostname = hostname
vagrant up
$ vagrant up
Bringing machine 'rancher-01' up with 'virtualbox' provider...
==> rancher-01: Checking if box 'rancherio/rancheros' is up to date...
==> rancher-01: Clearing any previously set forwarded ports...
==> rancher-01: Clearing any previously set network interfaces...
==> rancher-01: Preparing network interfaces based on configuration...
rancher-01: Adapter 1: nat
rancher-01: Adapter 2: hostonly
==> rancher-01: Forwarding ports...
rancher-01: 8080 => 8080 (adapter 1)
<略>
$ vagrant ssh
コンテナ起動
コンテナ起動までに少し時間がかかります。
[rancher@rancher ~]$ sudo docker run -d -p 8080:8080 rancher/server
Unable to find image 'rancher/server:latest' locally
latest: Pulling from rancher/server
0bf056161913: Pull complete
1796d1c62d0c: Pull complete
e24428725dd6: Pull complete
<中略>
8df5ebfaf4ea: Pull complete
a068c5314ea1: Pull complete
Digest: sha256:5f24e7220b48e602a1f66xxxxxxxxxxxxxxxxxxx3bb0bcba67c70dc8f430a5823
Status: Downloaded newer image for rancher/server:latest
435afe86da5c7e7e64725xxxxxxxxxxxxxxxxxx4584420c6239eff2efef374
rancherにブラウザアクセス
今回の手順だとvagrant上のコンテナ8080をホストマシンの8080にポートマッピングしているのでブラウザで「http://127.0.0.1:8080/」にアクセスしてみましょう。
アクセスコントロールの設定
画面上部のとこ「Access Control」をクリックして、設定をしましょう。
通常であれば、Githubと連携させておけばOKだと思います!
Rancherの管理画面イメージ
少しだけ、gifで紹介。ホストとしてはAmazon EC2, DigitalOcean等も使えるので色々出来ます。ローカルで使うだけなら、Customしか使わないけど。。。