Skip to content

Instantly share code, notes, and snippets.

@sambatriste
Last active March 5, 2018 06:43
Show Gist options
  • Save sambatriste/9e2c543fe611a92d2f0695f15a40c864 to your computer and use it in GitHub Desktop.
Save sambatriste/9e2c543fe611a92d2f0695f15a40c864 to your computer and use it in GitHub Desktop.

VirtualBox

最新版をインストールする。

Vagrant

雑に言うと、VirtualBoxの操作をコードで書ける、みたいな仕組み。 VirtualBoxとVagrantのバージョンが大きくズレているとハマりポイントになるので、両方最新版にする。

最新版をインストールする。 https://www.vagrantup.com/downloads.html

なぜVagrant?

LinuxマシンがあればDockerは動くので、最低限VirtualBox上にLinuxマシンがあればよい。 が、このやり方は構成ドリフト(俺のマシンでは動くんだけど問題)を起こすので、 Vagrantで環境構築を行うことにより、誰がどこでやってもだいたい同じ構成になるようにする。 (何をどうやってるかは下のVagrantfileをみればわかる。)

plugin

プラグインをインストール

  • vagrant-proxyconf (1.5.2)
  • vagrant-vbguest (0.15.1)
vagrant plugin install <plugin>

VagrantFile

# -*- mode: ruby; coding: utf-8 -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  if Vagrant.has_plugin?("vagrant-proxyconf")
    config.proxy.enabled  = false  # => true; all applications enabled, false; all applications disabled
    config.proxy.http     = "http://oskproxy.intra.tis.co.jp:8080"
    config.proxy.https    = "http://oskproxy.intra.tis.co.jp:8080"
    config.proxy.no_proxy = "localhost,127.0.0.1"
  end

  if Vagrant.has_plugin?("vagrant-vbguest")
    # set auto_update to false, if you do NOT want to check the correct
    config.vbguest.auto_update = true
  end
  
  config.vm.box = "ubuntu/trusty64"

  config.vm.provider "virtualbox" do |vm|
    # メモリを2GBに設定
    vm.memory = 2048

    # ホストとゲストで64bit、32bitが混在する場合の設定
    # https://qiita.com/hidekuro/items/fc12344d36d996198e96
    vm.customize ["modifyvm", :id,
                  "--ostype", "Ubuntu_64"   # 64bit
                 ]
  end

  
  # このIPアドレスでsshできる
  config.vm.network :private_network, ip: "192.168.73.73"
  # ポートフォワーディング
  config.vm.network :forwarded_port, host: 3003, guest: 3003
  config.vm.network :forwarded_port, host: 3000, guest: 3000 
  
  # プロビジョニング
  config.vm.provision "shell", inline: <<-SHELL
      test -f /etc/bootstrapped && exit

      apt-get update
      apt-get install -y apt-transport-https ca-certificates
      apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
      echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" > /etc/apt/sources.list.d/docker.list
      apt-get update
      apt-get purge lxc-docker
      apt-cache policy docker-engine
      apt-get install -y docker-engine

      gpasswd -a vagrant docker  # ユーザvagrantをdockerグループに所属させる

      service docker restart
      curl -s -S -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
      chmod +x /usr/local/bin/docker-compose

      date > /etc/bootstrapped
  SHELL

end

ちなみに

後半めっちゃシェルスクリプトで環境構築しているが、このやり方には問題がある。

  • シェルスクリプトは人によって書き方にばらつきが出る
  • 設定の追加ができない(今回の場合は最初の一回こっきり)
  • 設定を流用したり共通化しにくい(例えばCentOSに変えたらこの設定は使えない)

こういう問題に対処するのにはAnsibleのようなインフラ構成管理ツールを使用する。

https://www.ansible.com

が、今回やりたいことに対してはオーバースペックというか、登場人物が多くなってわかりにくくなるので、このままいく。

仮想マシンを起動

vagrant up

ちなみに

VirtualBoxがheadless(画面なし)で起動している。 VirtualBoxを自分で起動すると、設定した覚えのない仮想マシンが動いているのが見えるはず。

ssh

起動した仮想マシンにsshする。

vagrant ssh

または、TeraTermなどのターミナルエミュレータを使ってもよし。

userpassword
vagrantvagrant

Docker

vagrant sshして操作する。

dockerは既にインストール済のはず。(Vagrantのprovisioningで実施)

docker --version

rascaloidを別々に起動してみる

# rascaloid
docker run -d -p 3000:3000 --rm kawasima/rascaloid

# rascaloid-ri
docker run -p 3003:3003 -e "RASCALOID_HOST=192.168.73.73" -e "RASCALOID_PORT=3000" --rm kawasima/rascaloid-ri

状態を確認するには、

docker ps

停止するには、

docker stop <CONTAINER ID>

docker-composeで同時に起動してみる

docker-composeは既にインストール済のはず。

docker-compose version

docker-compose.yml

curl -O https://gist.githubusercontent.com/sambatriste/28cd82c4a17eb462431cf6b1cf8c8e6e/raw/29f661b6ddee03d28f5ac541eade6e2f0bab4502/docker-compose.yml

rascaloid-riをさわる

Vagrantfileで、ポートフォワーディング設定してあるので、localhostでアクセスできる。

http://localhost:3003/projecs

仮想マシンのNICに付与されたIPでもできる。ポートフォワード設定があやしいときはこっちで確認して原因切り分けする。

http://192.168.73.73:3003/projects

@sambatriste
Copy link
Author

proxy使うとき、vagrantfileのプロキシの設定をtrueに変更すること

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment