Vagrantで開発環境構築を自動化する
森です。先日開催された Vagrant meetup に参加しまして 開発者のHashimotoさんからVagrantのお話を聞くことができすごくホクホクしております。
熱が抜けないうちにVagrantを用いての開発環境作成のおさらいをこの場にまとめます
Vagrant とは
そもそもVagrantとは何か、乱暴にいうと 開発環境を簡単に作成する ためのツールです。 Virtual Boxなどの仮想化ソフトウェアなどを用いて各人のマシンに本番環境にほぼ等しい環境を誤りなくセットアップしてくれます。
開発者の Hashimoto さんの The Tao of Vagrant から引用すると
In a world with Vagrant, developers can check out any repository from version control, run vagrant up, and have a fully running development environment without any human interaction. Developers continue to work on their own machine, in the comfort of their own editors, browsers, and other tools.
Vagrantを使用することで 完全に動作する開発環境を人間の作業なしで作成でき、開発者は自分のマシンで好みのエディタ、ブラウザ、デバッグツールなどを使うことができます。
さっそくVagrantをインストールして仮想環境を起動してみましょう。
余談ですが手動でVirtual Boxを起動してVMを設定して必要ソフトウェアをセットアップして…という作業は最初の一回だけやるぶんにはいいのですが 他メンバーに同じ環境を用意する 場合に大変です。 自分が使っているVMをコピーして渡してもいいのですが セットアップ後にインストールした不要ツールを取り除いたり逆に後から追加したライブラリ設定を戻したり… こんなことをしているうちに元のVMが何が何だかわからなくなってしまった…という経験はありませんでしょうか?自分はかなり多いです。
お断り
先に断っておきますと、この記事に書いてある内容は Vagrant 公式サイト の GETTING STARTED を自分なりに噛み砕いたものです。 より正確にVagrantについての理解を深めたい場合は公式サイトを一読することがオススメです。
まず Virtual Box のインストールが必要です。僕の 前回の記事 あたりを参考にしつつインストールをしてください。
Vagrantのインストール
まずは 公式サイト へアクセスしましょう。
ダウンロードページ へアクセスし、最新バージョンのVagrantを選択して自分の使用しているOSにあわせたインストーラをダウンロードします。 以降Macを利用しているていで進めますがUbuntuなどのLinuxでも同じ手順で進められると思います。Windowsはよくわかりませんので後で環境探して試してみます…。 2013年7月14日現在の最新バージョンは 1.2.3 です。
ダウンロードしたインストーラを起動してVagrantをインストールしたらターミナルを開いてvagrantコマンドの確認をしましょう。
バージョン情報が表示されればインストール成功です。
プロジェクトの設定
Vagrantを使う上で必須なのがプロジェクトの設定ファイルである Vagrantfile を作成することです。 共通のVagrantfileを利用することで前述の完全に動作する開発環境を人間の作業なしで作成することができるのです。
今回はサンプルとして新規にVagrantfileを作成しましょう。適当なディレクトリを作成し、そこで vagrant init
をすることでVagrantfileを作成します。
できました。
Vagrantfileは ruby で記述することができます。 初期生成されたVagrantfileには細かいサンプルが記述されているのでそれを参考にして自分用のプロジェクトの設定を行いましょう。
boxのダウンロード
boxとはVagrantで使用する仮想マシーンの基本イメージです。ひな形とかテンプレートとかいうほうがイメージしやすいと思います。 boxにはCentOS, Debian, Ubuntu, Windows Serverなど様々なOSが利用できます。
本来ならば各人のシステムに合わせてboxを生成するのですが、今回は公式に提供されているboxから precise64 (Ubuntu12.04 64bit) を追加します。
boxの追加には vagrant box add {name} {url}
, 一覧の確認には vagrant box list
コマンドを利用します。これでboxにprecise64という名前でUbuntu12.04サーバーエディションが登録されました。
先ほどのVagrantfileを編集してboxの設定を変更します。
仮想マシンを起動する
起動には vagrant up
コマンドを使用します。
VMが起動しました。
起動したVMにsshで接続するためには vagrant ssh
コマンドを使用します。
VMの停止は vagrant halt
コマンドです。
後は box起動時に必要な環境をセットアップするための設定をVagrantfile に記述することで各プロジェクトに沿った開発環境を作成することができます。Vagrantfileについては長くなってきたので次回です。
Vagrantを用いることでVMの初期設定、起動、停止が簡単にできました。Vagrantfileに設定でホストOS,ゲストOSとの共有フォルダ設定やネットワーク設定なども定義できます。 また、Vagrantfileをバージョン管理することで変更を追うことも容易になります。
現在のバージョンのVagrantはVirtualBoxだけでなく VMware や Amazon EC2 もサポートしています。ネットワークさえ繋がれば仮想マシンを簡単に作成することが出来るのです。すごい!
結論
Vagrant使おう! ということです。