Vagrant を利用した Play! Framework 開発環境の作成

Vagrant を利用した Play! Framework 開発環境の作成

Play framework 2.x Scala Advent Calendar 2013 の 9日目の記事です。

チーム開発をしていると、WindowsMac を使って開発をされていて、環境や細かいソフトウェアの違いによって特定の場所でしか発生しないようなバグや、設定の違いによる動作の差異に苦しくことがあります。 そこで、Vagrant を利用して構築した例を紹介します。

作成したファイルは、github に up しています。 https://github.com/unok/vagrant-playframework

Vagrant ってなに?

Vagrant とは、主に仮想環境構築や運用操作を便利にしてくれるアプリケーションです。 設定ファイルに沿った形で仮想環境を構築することが可能です。今回は、VirtualBox を利用した環境構築を行います。

どんな環境ができるの?

今回作成する環境では、以下のことが可能です。

  • CentOS 6.4 x86_64 の環境で Play! Framework が動く仮想環境
  • ローカルファイルの共有
  • 複数の Play! Framework のバージョンが共存できるように、簡単なスクリプトが配置済み

事前準備

VagrantVirtualBox の最新をインストールしてください。 Vagrant は、サイトからダウンロードしてインストールしてください。 Windows は、chocolately (http://chocolatey.org/) を使うと便利です。 VagrantVirtualBox がアップデートされると時々動かなくなることがありますので、その時は twitter 等を検索してみてください。

構築

% git clone https://github.com/unok/vagrant-playframework.git
% cd vagrant-playframework/vagrant
% vagrant up

以上で構築は終わりです。 最新の状態だと VirtualBox の Guest Tools のバージョンが合わない旨の警告がでますが、使うのがファイル共有ぐらいなので今のところ無視して問題なさそうです。 vagrant-playframwork フォルダが VirtualBox の /vagrant_data にマウントされていると思います。

chef で実行している内容

Vagrant から実行している chef のレシピの内容は以下のようになってます。

  • ntp の設定
  • selinux の無効化w
  • oracle の jdk7 をインストール
  • typesafe stack のインストール
  • timezone の設定
  • yum update
  • 必要っぽい rpm のインストール
  • iptables の削除
  • Play! Framework のダウンロードと展開
  • play コマンドラッパーインストール

起動終了

起動は、構築と同じで、

% vagrant up

落す時は

% vagrant halt

です。

接続方法

% vagrant ssh

で仮想環境に入ることができます。

% vagrant ssh-config --host=vagrant-play >> ~/.ssh/config

のようにすると

% ssh vagrant-play

でどこでも入れるようになります。

他の細かい操作については、Vagrant のドキュメントをご覧ください。

最後に

今回は、CentOS 6.4 x86_64 の環境で構築を行ないましたが、Linux 環境であれば操作はあまり変わらないと思いますので、是非チーム用にカスタマイズしてください。 OS インストール以降の処理は chef で書かれていますので、実機等に対しても chef-solo で利用することが可能だと思います。node とかないので追加が必要ですが。 なんか全然 scala じゃなくてすみません。

明日は、まだ未定みたいですが、たぶん seratch さんが…。