こちらを参考に書きました。
Vagrant を利用した Play! Framework 開発環境の作成:http://unok.hatenablog.jp/entry/2013/12/09/093845
chefとvm, vagrantが既にインストールされている場合の手順
// Vagrantfileがあるディレクトリで実行
$ vagrant up
$ vagrant ssh-config --host play >> ~/.ssh/config
$ knife solo prepare play
// nodesができるので削除
$ rm -rf nodes
// chef-repoに移動
// opscodeからcookbookを取得
$ berks install --path cookbooks
// 調理開始
$ knife solo cook play
で、こういうのがめんどくさいので、vagrantに記述したり、chef-soloをインストールするpluginを入れたりするわけですが、それはまた次回。
https://www.virtualbox.org/wiki/Downloadsでvbをダウンロード
vagrantを導入。僕は公式からイメージを落としてきた(Mac用)
$ vagrant up
Vagrantfileに記述してあるので、勝手にcentOSを拾ってきます。変更したい場合はVagrantfileを編集。
$ vagrant ssh-config --host play >> ~/.ssh/config
$ ssh play
playがホスト名。適当に変えていいけど覚えておくこと。後述する、サーバーにchefをインストールする際に使用します。
$ gen i chef --no-ri --no-rdoc
$ knife configure
全部エンターでおk
公開されているcookbookをダウンロードするには、Opscode Communityにユーザ登録し、秘密鍵をダウンロードしておく必要があります。秘密鍵をDownloadしたら、/.chef/username.pemにパーミッション600で保存しておきましょう。更にknife configureで生成した/.chef/knife.rbに以下の記述が無かったら、追記します。
$ vim ~/.chef/knife.rb
client_key '/Users/tsuchikazu/.chef/username.pem' #この行追加
$ gem i knife-solo --no-fi --no-rdoc
$ knife solo prepare play
melodyはホスト名
Berksfileに追加
cookbook 'java'
javaのバージョンを指定する(詳細はhttps://github.com/socrata-cookbooks/javaとか、インストールしたcookbookのattributes/default.rbを見ると、設定できる箇所が分かる)
# node/play.json
"java": {
"install_flavor": "oracle",
"jdk_version": "7",
"oracle": {
"accept_oracle_download_terms": true
}
}
実行結果
[vagrant@localhost ~]$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
# ひな形作成
knife cookbook create play-install -o site-cookbooks
typesafeからzipを取ってきて解凍、コマンドのリンクを張る(詳細はplay-install/resipes/default.rbを参照)
https://github.com/rtkwlf/cookbook-simple-iptables
http://tsuchikazu.net/vps_chef_solo/
LWRP型のcookbookなので、cookbookを作成してrecipeからLWRP呼び出します。
opscode-mysqlを使用する。https://github.com/opscode-cookbooks/mysql
berks installした後下記を追加(passは適当に変更)
{
"mysql": {
"server_root_password": "iloverandompasswordsbutthiswilldo",
"server_repl_password": "iloverandompasswordsbutthiswilldo",
"server_debian_password": "iloverandompasswordsbutthiswilldo"
},
"run_list":["recipe[mysql::server]"]
}
$ knife solo cook play
$ play new hoge
$ cd hoge
$ play run
9000ポートでリッスンするので、Vagrantfileに書いたアドレス:9000にアクセスするとplayのようこそ画面が表示される。