Pocket

こんにちは、nodaです。

ついにVagrantのオライリー本が発行されました。
picture978-4-87311-665-5
Mitchell Hashimoto. (2014/2) 実践 Vagrant

エンジニアの必須ツールになりつつあるのが、このVagrant(べいぐらんと)なるものです。
今回は仮想マシンの構築時にあると便利なVagrantを使って、仮想マシンへ接続できるまでの入門編です。

■Vagrantってなんぞ!?

Vagrantは、仮想マシンを自動同じ構成何度でも立ち上げることができるツールです。

開発を通して環境をゴチャゴチャいじっていると、さっきまでは動いていたのにとか、自分の環境では動いていたのにとか、開発環境で泣かされ多くの時間を消費することはよくあることです。
そんな時にVagrantを使えば、ちょっと前の構成に戻ってみたり、他の人の環境に自分と同じ構成を持ってくることができます。

もちろんVagrantは生産性の向上につながりますが、開発環境依存による不具合なども防げるので品質向上にも貢献できます。

■ツールのインストール

さて、Vagrantを使用するための準備をしていきましょう。

Vagrantは仮想マシンを構築するツールですので、当然ですが仮想マシンが必要となります。
仮想マシンにはVMwareやamazonのEC2などがありますが、今回はOracleのVirtualBoxを使用します。

なお検証環境は下記の通り”OS X”で行いましたので、Windows環境の方は読み替えて下さい。

検証環境
OS X Ver10.8.5

VirtualBoxは下記からダウンロードできます。
https://www.virtualbox.org/
(今回はこちらをダウンロード ⇒ VirtualBox 4.3.8 for OS X hosts)

肝心のVagrantもダウンロードしましょう。
http://www.vagrantup.com/
(今回はこちらをダウンロード ⇒ Vagrant 1.5.1)

ダウンロードが終わりましたら、VirtualBoxとVagrantをインストールして準備は完了です。

■Boxを使って環境構築

VagrantではBoxと呼ばれる仮想マシンのテンプレートを使って容易に環境構築ができます。
Boxは公式サイトにもありますが、より豊富なBoxを有志が配置している非公式サイトもあります。

公式サイト
http://docs.vagrantup.com/v2/getting-started/boxes.html

非公式サイト
http://www.vagrantbox.es/

それではVagrantのコマンドを使って、Boxを追加していきます。

ここからはターミナルでの作業になるので、まずはターミナルを立ち上げましょう。
Vagrantを使用する場合、コマンドの最初に「vagrant」をつけてあげます。
(Gitを使うときに「git」と入力するのと同じです。)

ターミナルで「vagrant -h」と入力すると、vagrantで使用できるコマンドが確認できます。

$ vagrant -h

Screen Shot 2014-04-06 at 23.09.32

Boxを追加するためには「box」コマンドと、「add」サブコマンドを使用します。

$ ### vagrant box add {args1} {args2}
$ vagrant box add centos http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box
引数指定
{args1} Boxにつける任意の名前を指定
{args2} BoxがあるURLを指定

今回は非公式サイトに記載されていたCentOS-6.4のURLをコピペしてきました。
準備ができたら実行してみましょう。
この「add」サブコマンドは、大きなファイルをダウンロードしてくるわけなので、なかなかの時間がかかります。
Screen Shot 2014-04-06 at 22.18.43

ちなみに「box」コマンドに”-h”オプションを指定することで、「box」コマンドにおけるサブコマンドが確認できます。

$ vagrant box -h

Screen Shot 2014-04-06 at 22.52.47

Boxの追加が終了すると、以下のディレクトリ配下にBoxが追加されているので確認してみましょう。

$ ls ~/.vagrant.d/boxes

先ほどコマンドで指定したディレクトリ名でBoxが配置されていると思います。

■仮想マシンの初期化

Boxを追加しただけでは仮想マシンは起動できません。
仮想マシンを初期化してあげましょう。

初期化には「init」コマンドを使いますが、初期化後はカレントディレクトリに”Vagrantfile“という設定ファイルができますので、他の仮想マシンと区別するために、仮想マシンごとにディレクトリを作る必要があります。

$ mkdir centos_vm
$ cd centos_vm
$ ### vagrant init {args1}
$ vagrant init centos
引数指定
{args1} Boxのディレクトリ名を指定

■仮想マシンの起動

いよいよ、仮想マシンを起動します。
起動は”Vagrantfile”があるディレクトリで、「up」コマンドを使うだけです。
その前に、仮想マシンに対して実行できるコマンドには以下がありますので押さえておくと役立ちます。

status 状態を見る
up 起動させる
halt 終了させる
reload 再起動
suspend スリープさせる
resume スリープから復帰させる
destroy 仮想マシンを削除する

ちなみに「destroy」をすると、仮想マシン内で設定した情報は削除されますが、”Vagrantfile”は残るため「up」コマンドで再び起動することができます。

では「up」コマンドを実行してみましょう。

$ vagrant up

status」コマンドで起動していることが確認できると思います。

$ vagrant status

Screen Shot 2014-04-08 at 0.30.40

■仮想マシンへの接続

仮想マシンへ接続するためには「ssh」コマンドを使用します。
「ssh」コマンドもまた、”Vagrantfile”のある接続したい仮想マシンのディレクトリで行ってください。

$ vagrant ssh

“vagrant”というユーザで仮想マシンにログインしたことを確認できると思います。

Screen Shot 2014-04-08 at 0.33.35

sshから抜ける(仮想マシンから出る)場合は「exit」コマンドを使用します。

$ exit

■今回はここまで

今回は仮想マシンに接続するまででした。
正直、ここまでだとVagrantの良さを全く引き出せていません。
なので次回は”Provisioning“を行って仮想マシンを立ち上げてみます。
これだけでかなり便利になるはずですので、お楽しみに!

ではでは。