2013年12月15日

Vagrantを使って仮想環境を簡単に構築する

サーバークライアント環境で実行するアプリケーションの開発が必要になった。クライアントアプリのデバッグのためにサーバーアプリも必要なんだけど、そのために環境構築するのめんどくさい。使える家庭内サーバーはあるにはあるが、そこに色々環境をいじると何かと面倒。

と思っていたところたまたまVagrantというのがあることを知った。昔ちょっと触ったことがあるVirtualBoxを簡単に使えるツールのようだ。

設定手順はすごく簡単。

1)VirtualBoxをダウンロードする。

https://www.virtualbox.org/wiki/Downloads
VirtualBox 4.3.4 for OS X hosts
vagrant1.png

Mac OS X向けでは上記が最新。なのでこれをダウンロードして、ディスクイメージをマウント。インストーラを起動してインストールする。
vagrant2.png

通常の使い方をする場合にはVirtualBoxの管理アプリケーションを起動するのだが、今回は簡単に設定したいのでインストールするだけ。

ちなみに、VirtualBoxってOracleの製品(無償)だったんですね。JavaVMの技術となんか関係あるんでしょうか。でもこんなすごいソフトウエアを無償で提供していいんでしょうか?でもありがたいことです。

2)Vagrantをダウンロードする。

http://downloads.vagrantup.com/
Vagrant-1.3.5.dmg
vagrant3.png

現時点最新の1.3.5をダウンロードして、ディスクイメージをマウント。インストーラを起動してインストール。
vagrant4.png

3)Vagrantfileの設定

本来であれば次は標準Boxをダウンロードして導入するのだが、そこはとばす事にする。
http://www.vagrantbox.es/
にあるのは主に各OS(Linux系だけど)のプレーンな状態のもの。実際にはそこに開発言語やDB、フレームワークなどのミドルウエアを導入して、場合によってはディレクトリ構成を変更したり、DBや各種サービスの設定までもした後に、開発環境やテスト環境としてプロジェクトメンバーに提供する。そしてある程度そこまで様々な設定を済ませた環境がまたあちこちで公開されている。

今回は以下の条件で検索してみつけたものを使わせてもらった。
Linux系OS(なんでもよかったができればCentOS 64bit)
Apache(これもなんでもよかった)
PHP(5.2以降)
PostgreSQL(9.1以降)
あとできればCakePHP

https://github.com/shin1x1/vagrant-lapp-sample
vagrant5.png

$ git clone https://github.com/shin1x1/vagrant-lapp-sample
$ cd vagrant-lapp-sample/vagrant
$ vagrant up


これで必要な環境をダウンロードしてくれてセットアップして起動までしてくれる。ネットワーク環境などで違いがあるだろうが、10数分でできた。

4)動作確認

ちゃんと動いているかどうかは以下で確認できる。
まずWebサーバーが動いているかどうか。ブラウザから以下のURLにアクセスする。
http://192.168.33.30/
vagrant6.png

ちなみにこのIPアドレスはVagrantfileで設定しているので問題がある場合には事前に変更しておく。

Webサーバーが動いていれば、つぎにPostgreSQL環境がOKかどうかをphpPgAdminにアクセスする。これでphpの設定も確認できる。

http://192.168.33.30/phpPgAdmin/
vagrant7.png

管理者としてID=vagrantでログインできる。パスワードは何でもよい。これもVagrantfile内のプロヴィジョン設定で作られている(DBも作っている)ので変更したければそこでできる。

これで終わり。

5)ファイル同期

あとはソースを置いたりDBのスキーマを作ったり。独自のことをするだけだがログインするには以下のコマンドが使える。
$ vagrant ssh


なお、このbox設定ではvb.gui = trueになっているせいでGUIが起動している。そこでログインしてもよい。
vagrant8.png

だが設定を変更しないのであれば、ホストOSの側の使い慣れたツールを使って開発してローカルフォルダにファイルを保存すると、自動的に仮想環境と同期してくれる便利な機能がある。

このboxではホスト側のvagrant-lapp-sample/が仮想環境の/shareになっていて、/share/app/webroot/がwebのトップページになっているので、ここ以下に置いてブラウザでテストするということが可能。

6)vagrantの起動停止

起動
$ vagrant up

(複数環境がある場合にはパラメータにbox名を付けて選択して起動できる)

停止
$ vagrant halt


一時停止
$ vagrant suspend


再起動
$ vagrant resume

vagrant upでもいいみたい)

環境を消去する。
$ vagrant destroy



まだ分かっていない事も多いがとにかく環境を準備するのが実に簡単にできるようになっていて、しかも初期化も簡単なので実行環境へのインストールの練習とかインストールスクリプトのテストなどもできそうで大変ありがたい。
ラベル:仮想環境
posted by 永遠製作所 at 23:31| 東京 ☀| Comment(0) | TrackBack(0) | Mac OS X | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック