2014/04/02(Wed) サービス開発
鈴木 弦

今更聞けない人の為の Vagrant 再入門

Vagrant

2013年に爆発的に流行った Vagrant は非常に便利なツールで使ってる人にとっては無くてはならない存在になっています。
また、最近既にバズワード感のある「Immutable Infrastructure」では「VagrantにDockerを入れて。。」などと知ってる前提で話が進んでいきます。

一方でそもそも Vagrant ってなに?って声もちらほら聞くので、今回は再入門ということで簡単に紹介したいと思います。

Vagrant ってそもそも何?

Vagrant (ベイグラント) とはMitchell Hashimoto(ミッチェル ハシモト)氏が開発したRuby製スクリプトで仮想マシンをCUIから簡単に操作できるツールです。

Vagrant のどこが便利なの?

Vagrant を利用すると下記のようなメリットが挙げられます。

・プロジェクト毎に開発環境を分けることが出来る。
・開発環境をすぐに作ったり壊したり出来る。
・Chefなどの構成管理ツールと組み合わせて、複数人で開発環境が揃えることができ、「このシステム、俺の環境だと動かないんだけど?」ということが無くなる。

などなど。

今回はとりあえず入門ということで仮想マシンを立ち上げてブラウザからアクセスするところまでやってみましょう。

早速インストールしてみよう

ホストOSはMacOSXで行います。

VirtualBox のインストール

公式サイトから環境にあわせたVirtualBoxをダウンロード、インストールします。
今回は現時点(2014/04/02)での最新版4.3.10を使用します。

公式サイト: https://www.virtualbox.org/wiki/Downloads

//インストール確認
$ VBoxManage -v
4.3.10r93012

入りました。

Vagrant のインストール

公式サイトから環境にあわせたVagrantをダウンロード。インストールします。
今回は現時点(2014/04/02)での最新版1.5.1を使用します。

公式サイト: http://www.vagrantup.com/downloads.html

//インストール確認
$ vagrant -v
Vagrant 1.5.1

入りました。

boxファイルの追加

Vagrant ではあらかじめOSがインストールされたboxファイルを使用して仮想マシンを作成します。
以下からOSを選んでダウンロード、登録します。
今回は Ubuntu13.04 を使います。

http://www.vagrantbox.es/

// boxの登録。結構時間かかります。
$ vagrant box add ubuntu13.04 http://goo.gl/ceHWg

これで ubuntu13.04 という名前の box が作られました。

// 追加されているか確認
$ vagrant box list
ubuntu13.04       (virtualbox)

Vagrant の初期化

$ mkdir ubuntu13vm
$ cd ubuntu13vm
$ vagrant init ubuntu13.04

vagrant initを実行するとカレントディレクトリに Vagrantfile が作成されていると思います。
こちらが Vagrant の設定ファイルになります。
Chefなどのプロビジョニングの設定や同期フォルダの設定、ネットワークの設定が出来ます。

Vagrantfileのネットワークの設定を少しいじってみましょう。

# config.vm.network "private_network", ip: "192.168.33.10"
↓
config.vm.network "private_network", ip: "192.168.33.10"

これで起動したときの仮想マシンのIPが192.168.33.10になります。
WEBサーバなどを立ち上げた時に上記のIPでアクセスできます。

Vagrant の起動

さて起動してみましょう。初回のみ時間がかかります。

$ vagrant up

立ち上がったら起動した仮想マシンに入ってみましょう。

$ vagrant ssh
Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-19-generic x86_64)

 * Documentation:  https://help.ubuntu.com/
Your Ubuntu release is not supported anymore.
For upgrade information, please visit:

http://www.ubuntu.com/releaseendoflife

New release '13.10' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Wed Jun 12 06:36:33 2013 from 10.0.2.2
vagrant@raring64-vanilla:~$ 

入れました。
vagrantというユーザーでログインしています。

抜けたいときはexitで抜けましょう。

ためしに仮想マシンにApacheをいれてブラウザで表示してみましょう。

// Apacheのインストール
vagrant@raring64-vanilla:~$ sudo aptitude -y install apache2

インストールできたら先ほど設定したIPアドレスにブラウザでアクセスしていみましょう。

ブラウザ

無事アクセスできました。

Vagrant の終了

終了したい時は

$ vagrant halt

仮想マシンはもういらないので破棄したい場合は

$ vagrant destroy

おまけ

Vagrant1.5 から追加された新機能の Vagrant Share はローカルで立ち上げた環境にグローバルからアクセスできるようになり、ちょっとした動作確認のときに重宝します。

今回は入門なので紹介だけにしますが、余裕がある方は是非使ってみてください。

参考: https://vagrantcloud.com/

まとめ

これで手軽に作ったり壊せたりする環境が手に入りました。

次回は Vagrant と組み合わせて使いたい Chef Solo を紹介したいと思います。

この記事を書いた人
鈴木 弦 エンジニア

サーバーサイドエンジニア。大手WEBポータル企業にてコマース開発に従事。企業向けシステム開発等に関わる。また100万DLを超えるiOSアプリのメイン開発担当。その後School Withにジョイン。好きなラーメンは鶏ガラ系醤油。

School With