Vagrantをさわってみる


挨拶

お久しぶりです。

最近はランチ系の記事ばかり書いていたせいなのか
腹痛に悩まされているt_yamanakaです(というかおそらく食べ過ぎによるもの)。

毎回、ランチネタばかり書いていると
技術ブログの趣旨と変わってくるので今回はランチネタではありません。
あとたまにはvimじゃない記事も書いてみようかと思います。

今回の記事はVagrantというソフトウェアの紹介です。

Vagrantとは

Vagrantとはコマンドライン上から仮想マシンを
便利に作成できる仮想マシン自動作成ツールです。

サーバ構成などの設定をファイルに書き込むので、
・間違った設定で動かなくなってしまったよ
・しかも、どこをいじったのかわからないよ
・…詰んだ。。
など困った状況に陥ったとしても、
設定を再利用することで再び同じ構成で再構築することができます。

つまり、
・OSのイメージを用意
・仮想マシンの設定をあれこれ
・あれをインストール、これをインストール
など面倒な作業を一括自動化できる便利なツールです。

また、設定ファイルさえあれば
誰のもとでも同じ環境を再構築できるので、
新入社員の学習用環境などとしても使いやすいかもしれないですね。

ちなみに、
読み方はVagrant「ベイグラント」、「ベーグラント」
意味は「浮浪」、「さすらいの」、「方向のさだまらない」などなど。

読み方がロボットっぽくてかっこいいですね。

環境

今回使用した環境は以下のとおりです。

OS:MacOS X 10.8.4
仮想マシン:VirtualBox 4.2.16
Vagrant:1.2.4

(今回、仮想マシンにはVirtualBoxを用いましたがVMWareやAWSなども使えるようです)

インストール

VirtualBoxのインストール:ここ

Vagrantのインストール:ここ

自分のOS環境にあったものをダウンロードしてインストールして下さい。

Vagrantコマンド

$ vagrant -h

で確認できます。

こんな感じです。

-v, --version                    Print the version and exit.
-h, --help                       Print this help.

Available subcommands:
box         #Boxの取得
destroy     #仮想マシンの削除
halt        #仮想マシンのシャットダウン
init        #Vagrantfileの作成
package     #Boxパッケージ化(自分用のBOX作成)
plugin      #プラグインのインストール
provision   #起動している仮想マシンへ対してchefのrecipeを実行する
reload      #Vagrantfileの再読み込み
resume      #復帰(suspendからの)
ssh         #ssh接続
ssh-config  #ssh接続の設定
status      #仮想マシンの状況確認
suspend     #一時的な停止
up          #仮想マシンの起動

Boxの取得

Boxとは仮想マシンのひな形(テンプレート)です。

今回は公式サイトに用意されているBoxを使用してみます。
公式TOPDOCUMENTATIONGetting StartedBoxes

$ vagrant box add precise32 http://files.vagrantup.com/precise32.box

(precise32というのはUbuntu 12.04 32bit版のことです)

$ vagrant box list
precise32 (virtualbox)

・他のOSを使用したい場合
vagrantbox.esで探すといいみたいです。
有志がBoxを配布しているところ(非公式なので利用する際は自己責任で!)

仮想マシンの作成〜起動

仮想マシン作成から起動するまでの手順になります。
・ディレクトリ作成
(仮想マシンごとにディレクトリを作っていく必要がある)

$ mkdir precise32VM

・初期化

$ vagrant init precise32

Vagrantfileが作成される(rubyで書かれた設定ファイル)

・起動
Vagrantfileがあるディレクトリで以下のコマンドを実行します。

$vagrant up

VirtualBox側の画面に仮想マシンが表示され「実行中」になっています。

VirtualBox実行中画面

VirtualBox実行中画面

仮想マシンへの接続

$ vagrant ssh

これでvagrantユーザでログインできます。

・Apacheをインストールしてみます。

$ sudo aptitude -y install apache2

この時点ではインストールが完了しても
Mac側のブラウザで確認することはできません。

Vagrantfileの編集

仮想マシン上のWebページを表示するために
ネットワークの設定を行います。
設定はVagrantfileを編集することで行います。

WebページをMac側から見れるようにするために
プライベートアドレスを割り当てます。
Vagrantfile内以下の行のコメントアウトを外します。

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

設定ファイルを更新したのでreloadします。

$ vagrant reload

ブラウザで先ほど割り当てたアドレスにアクセスすると
Webページが表示されます。

Webブラウザ確認画面

Webブラウザ確認画面

仮想マシンのシャットダウン

シャットダウンは以下のコマンドでおこないます。

$ vagrant halt

VirtualBox側の画面でも「電源オフ」になっています。

VirtualBox 電源オフ画面

VirtualBox 電源オフ画面

まとめ

Vagrantは

・テンプレートとなるBox(ひな形)をベースにして、仮想マシンを作成する。
・設定(Vagrantfile)を再利用することで同じ環境をコマンド実行だけで構築できる。

つまり、環境を

作成
↓
潰す
↓
簡単に元に戻せる

開発環境としては理想ですね。

今回は初歩的な部分を紹介しましたが、
・各種設定
・仮想マシンの複数起動
・仮想マシンのエクスポート
・アプリケーションのデプロイ
・プラグイン拡張
など
まだまだ便利機能があるみたいなので、
引き続き、学習環境用に使い込みつつ
紹介していけたらなと思います。

それではではっ。

Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*