WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

Vagrantのインストール(Mac OS X)

   

Vagrantとは

VirtualBoxのフロントエンドで、手軽に仮想マシン上に環境を構築することができるツール。。

本番環境にCentOS、ローカルでUbuntuやMac OS Xを利用している場合、ローカルでも同じUNIX系OSであるため本番と”似たような”開発環境を構築することができる。
しかし、Vagrantを利用することでより本番と全く同じOS、ミドルウェアバージョンで環境を構築することが可能となる。

ローカルに開発環境を構築する変わりにVagrantを利用する場合のメリットは以下の通り。

  • OSバージョンやディストリビューション間の微妙な違いに起因する問題(ローカルでは動いていたけど本番やステージングで動かないなど)を回避することができる
  • デプロイ工程などマシン1台で完結しない動作の確認も可能
  • ローカルと開発環境を疎にすることでローカルをクリーンな状態に保つことができる
  • BoxファイルというVagrantでのテンプレートのようなものをチーム内で共有して環境を統一できる

また、VagrantはChefやpuppetなどのプロビジョニングツールと連携できるので環境構築手順のコード化も容易。

Mac OS Xにインストールする場合

Vagrantのインストール

下記URLの公式サイトからdmgをダウンロードしてインストールする。

http://www.vagrantup.com/

インストール後、ターミナルからVagrantコマンドでバージョンが確認できればOK。

$ vagrant -v
Vagrant 1.7.2

VirtualBoxのインストール

VagrantはVirtualBoxのフロントエンドとして動作するため、VirtualBoxも必要。
これも下記URLからdmgをダウンロードしてインストール。

https://www.virtualbox.org/

仮想マシンの生成

Boxの追加

Boxは仮想マシンの起動の際にベースとなるイメージファイル。ディスクイメージやVirtualBoxの設定ファイル、メタデータなどがまとめられている。
ここでは例としてCentOS6.5のBoxを追加してみる。
実用時には下記URLにいろいろなBoxがあるので、プロジェクトを動作させたいOSのBoxを選べばOK。。

http://www.vagrantbox.es/

$ vagrant box add centos65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box

仮想マシンの初期化

下記手順で指定したディレクトリに仮想マシンの設定ファイル(Vagrantfile)を作り、初期化する。

$ mkdir -p ~/Vagrant/CentOS65
$ cd ~/Vagrant/CentOS65
$ vagrant init centos65

仮想マシンの起動

ここまでの手順を行なっていればVagrantの設定ファイルが存在するディレクトリ(ここでは~/Vagrant/CentOS65)で以下のコマンドを実行してVagrantを起動することができる。

$ vagrant up

Vagrantを起動後は、VirtualBox を起動すると左にあるVM一覧にCentOSが追加されていることがわかる。

また、起動後は`vagrant status`で状態確認が行なえる。

$ vagrant status
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

特に問題なければ下記コマンドでVagrantにssh接続を行なうことが可能。

$ vagrant ssh

自分の場合はあっさり入れた。

Vagrantを停止するには下記コマンドを実行する。

$ vagrant halt

トラブルシューティングなど

Vagrantが起動しない(`vagrant up`してもどこかのタイミングで停止する)場合は下記設定で何かわかるかも。

VagrantをGUIで起動

VagrantはデフォルトではCUIで起動するが、GUIで起動させるにはVagrantfileに下記を追記する。

$ vim Vagrantfile
Vagrant.configure(2) do |config|
  ...略...
  下記を追記
  config.vm.provider "virtualbox" do |v|
    v.gui = true
  end
end

これでVagrantを起動するときにVirtualBoxも起動するようになる。
VirtualBox側で何らかの問題が起こっている場合、エラーが見つけやすくなる。

ログの出力オプションを指定

`vagrant up`時に下記のようにログの出力オプションを指定すると、起動時の詳細なログを見ることができるようになる。

$ VAGRANT_LOG=info vagrant up

$ VAGRANT_LOG=DEBUG vagrant up

 - Vagrant ,