Vagrant
おうちから触れる CentOS 環境が欲しくなったので、
今更 Vagrant を Mac Air にいれてみる。
Vagrant: https://www.vagrantup.com/
Vagrant インストール
公式から Mac 用 dmg をダウンロードしてインストール
https://www.vagrantup.com/downloads.html
VirtualBox インストール
Vagrant は VirtualBox, Hyper-V, Docker をサポートしているらしい。
VirtualBox にしてみる。
公式から Mac 用 dmg をダウンロードしてインストール
https://www.virtualbox.org/wiki/Downloads
box の取得
起動イメージを box と呼ぶらしい。
https://atlas.hashicorp.com/boxes/search
から探してダウンロードする。
とりあえず bento/centos-6.8
https://atlas.hashicorp.com/bento/boxes/centos-6.8
にしてみる。
Vagrant 作成・実行
作業ディレクトリ作成
$ mkdir -p Vagrant/centos-6.8
$ cd !$
Vagrant 初期化
$ vagrant init bento/centos-6.8
VM は private network を使う
$ sed -i -e 's/# config.vm.network "private_network"/config.vm.network "private_network"/' Vagrantfile
(ネットワークの種類は割愛。検証用なら private_network が良いのでは)
VM 起動
$ vagrant up
VM 起動確認
$ vagrant status
Current machine states:
default running (virtualbox)
VM 接続
$ vagrant ssh
[vagrant@localhost ~]$ cat /etc/redhat-release
CentOS release 6.8 (Final)
VM 削除
$ vagrant destroy
複数 Vagrant 作成・実行
複数 VM 起動する場合は Vagrantfile を
Vagrant.configure("2") do |config|
config.vm.box = "bento/centos-6.8"
config.vm.define "cent6.8-1" do |vm1|
vm1.vm.network "private_network", ip: "192.168.33.21"
end
config.vm.define "cent6.8-2" do |vm2|
vm2.vm.network "private_network", ip: "192.168.33.22"
end
end
のように書く。
実行は
$ vagrant up
で両方起動する。
名前を指定すれば1台だけ起動もできる。
起動確認
$ vagrant status
Current machine states:
cent6.8-1 running (virtualbox)
cent6.8-2 running (virtualbox)
ディレクトリで閉じているので最初に作った default VM は表示されない。
vagrant で作成した VM を全て確認する
$ vagrant global-status
id name provider state directory
-----------------------------------------------------------------------------
86f4387 default virtualbox running PATH_TO_VAGRANTFILE
04a9930 cent6.8-1 virtualbox running PATH_TO_VAGRANTFILE
0607349 cent6.8-2 virtualbox running PATH_TO_VAGRANTFILE
Vagrantfile を色々いじったりして global-status で出るけど消せない VM ができたら
$ vagrant global-status --prune
で伐採する。
参考
box ファイルサイズ
$ du -hs ~/.vagrant.d/boxes/bento-VAGRANTSLASH-centos-6.8/
280M ~/.vagrant.d/boxes/bento-VAGRANTSLASH-centos-6.8/
VM disk ファイルサイズ
$ du -hs ~/VirtualBox\ VMs/cent68_cent68_1493411084611_79030/
860M ~/VirtualBox VMs/cent68_cent68_1493411084611_79030/
VM イメージがやっぱりちょっと大きい・・・。
まとめ
VirtualBox をコマンド (vagrant) で管理できる。
大量に作成したり、IP 管理したり、起動後にコマンド実行したりが設定できて便利。
設定ファイルも Vagrantfile だけなので Git 管理できる。
検証含めてプロジェクト毎にディレクトリと Vagrantfile を分ける運用が良さそう。
何か困ったらまた追記