MacにVagrantをインストールする

2014年2月21日

Ruby

遅ればせながら Mac に Vagrant をインストールしました。Vagrant のインストールと、各種プラグインのインストール、Vagrant の基本的な使い方を紹介します。Vagrant を使うと、クリーンなサーバをパパっと立ち上げて新しいツールを試すことができたり、複数のマシンで仮想 OS を共有するのが容易だったり、とても便利です。慣れてきたら開発環境をすべて Vagrant に統一したいです。

動作確認環境

  • Mac OS X Mountain Lion
  • Vagrant 1.4.3
  • VirtualBox 4.3.6

目次

  1. VirtualBox をインストール
  2. Vagrant をインストール
  3. Vagrant に CentOS を追加
  4. Vagrant の設定ファイルを作成
  5. 仮想 OS を起動
  6. 仮想 OS に ssh で接続
  7. Vagrant の基本的な使い方
  8. sahara プラグインをインストール
  9. Guest Additions を自動更新
  10. Chef solo を自動インストール
  11. 仮想 OS がネットワークにつながらない場合の対処方法

VirtualBox をインストール

VirtualBox の最新版をダウンロードしてインストールします。

Downloads – Oracle VM VirtualBox

Vagrant をインストール

最新版をダウンロードしてインストールします。Gem によるインストールはできなくなった模様。

Vagrant - Download Archives

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

-技術ブログ
-