遅ればせながら Mac に Vagrant をインストールしました。Vagrant のインストールと、各種プラグインのインストール、Vagrant の基本的な使い方を紹介します。Vagrant を使うと、クリーンなサーバをパパっと立ち上げて新しいツールを試すことができたり、複数のマシンで仮想 OS を共有するのが容易だったり、とても便利です。慣れてきたら開発環境をすべて Vagrant に統一したいです。
動作確認環境
- Mac OS X Mountain Lion
- Vagrant 1.4.3
- VirtualBox 4.3.6
目次
- VirtualBox をインストール
- Vagrant をインストール
- Vagrant に CentOS を追加
- Vagrant の設定ファイルを作成
- 仮想 OS を起動
- 仮想 OS に ssh で接続
- Vagrant の基本的な使い方
- sahara プラグインをインストール
- Guest Additions を自動更新
- Chef solo を自動インストール
- 仮想 OS がネットワークにつながらない場合の対処方法
VirtualBox をインストール
VirtualBox の最新版をダウンロードしてインストールします。
Downloads – Oracle VM VirtualBox
Vagrant をインストール
最新版をダウンロードしてインストールします。Gem によるインストールはできなくなった模様。
Vagrant に CentOS を追加
A list of base boxes for Vagrant - Vagrantbox.esに vargrant 用の OS イメージが公開されています。CentOS の比較的新しいものをダウンロードします。
$ vagrant box add centos653 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
Vagrant の設定ファイルを作成
適当なディレクトリを作成して、その中で vargrant init コマンドを実行します。
$ mkdir -p ~/Documents/vagrant/centos
$ cd ~/Documents/vagrant/centos
$ vagrant init centos
起動する前に、設定ファイルを修正します。
~/Documents/vagrant/centos/Vagrantfile
# ホストオンリーアダプタの IP アドレスを指定
# using a specific IP.
config.vm.network :private_network, ip: "192.168.33.10"
# 仮想 OS のメモリを 1024MB に、CPU のコア数を 4 に変更
config.vm.provider :virtualbox do |vb|
# Don't boot with headless mode
# vb.gui = true
# Use VBoxManage to customize the VM. For example to change memory:
vb.customize ["modifyvm", :id, "--memory", "1024", "--cpus", "4"]
vb.customize ["modifyvm", :id, "--ioapic", "on"]
end
仮想 OS を起動
Vagrantfile があるディレクトリで vargrant up を実行して起動します。
$ cd ~/Documents/vagrant/centos
$ vargrant up
仮想 OS に ssh で接続
vagrant ssh-config コマンドで vagrant に ssh で接続するための設定を生成します。
$ vagrant ssh-config --host centos >> ~/.ssh/config
デフォルトでは NAT でアクセスするようになっているので ssh の config を修正します。
#HostName 127.0.0.1
HostName 192.168.33.10
#Port 2222
Port 22
ssh で接続してみます。
$ ssh centos
ログインできれば OK です。
Vagrant の基本的な使い方
# 仮想 OS を追加
$ vagrant box add centos [box-url]
# 起動
$ vagrant up
# シャットダウン
$ vagrant halt
# add した box を表示
$ vagrant box list
# box を削除
$ vagrant box remove centos
sahara プラグインをインストール
sahara プラグインをインストールすると、OS の状態を記録しておいて、その時点まで巻き戻すことができるようになります。chef でいろいろ試したいときに便利です。
vagrant plugin install コマンドで sahara をインストールします。
$ vagrant plugin install sahara
vagrant plugin list コマンドでインストール確認。
$ vagrant plugin list
sahara (0.0.16)
使用できるコマンドは以下の通り。
# sandbox の状態を確認
vagrant sandbox status
# sandbox モード ON
vagrant sandbox on
# sandbox モード OFF
vagrant sandbox off
# sandbox での変更を確定
vagrant sandbox commit
# sandbox での変更を破棄
vagrant sandbox rollback
Guest Additions を自動更新
VirtualBox の Guest Additions は、vagrant-vbguest プラグインを使って自動更新することができます。
$ vagrant plugin install vagrant-vbguest
Chef solo を自動インストール
仮想 OS のプロビジョニングに Chef solo を使う場合、仮想 OS に Chef solo が入っている必要があります。vagrant-omnibus プラグインを使うと、vagrant up 時に chef solo を自動インストールすることができます。
$ vagrant plugin install vagrant-omnibus
config.omnibus.chef_version に :latest を指定すると常に最新版をインストールしてくれます。
~/Documents/vagrant/centos/Vagrantfile
config.omnibus.chef_version = :latest
仮想 OS がネットワークにつながらない場合の対処方法
仮想 OS を立ち上げたところ、インターネットにつながりませんでした。VirtualBox の DNS 関連の設定を変更するとつながるようになります。
~/Documents/vagrant/centos/Vagrantfile
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end
end