by shigemk2

当面は技術的なことしか書かない

Chef SoloでPlay Frameworkをインストールし、使えるようにしてみる

参考記事

ウェブサービス系OSSの浸透を期待して開発環境を配布するまで - eller's blog

参考リポジトリ

eller86/partake-vagrant · GitHub

概要

とりあえずplay runできるようになればいいので、Chef Soloでplay run自動実行とかあんまり考えていない。それはデプロイツールの仕事なので。

そして、だいたいのやつは上のレポジトリで動くので、 とりあえず修正したところをうpします。

もとのリポジトリはPlay Frameworkのソースをダウンロードしてunzipするだけだったので、 とりあえずシンボリックリンクを貼ってplayコマンドを実行できるようにしてみました。

たぶんユーザー名とかをattributeに避難させるのが今後の課題なのだろうか。

site-cookbooks/play/recipes/default.rb

# default.rb
#

package "zip"

execute "install-play" do
    user "root"
    cwd node['play']['install_dir']
    command <<-EOH
    unzip play-#{node[:play][:version]}.zip
    chown -R vagrant:wheel /usr/src/play-2.2.1/
    ln -s /usr/src/play-2.2.1/play /usr/local/bin/play
    EOH
    action :nothing
end

remote_file "#{node[:play][:install_dir]}/play-#{node[:play][:version]}.zip" do
    user "vagrant"
    source "http://downloads.typesafe.com/play/2.2.1/play-2.2.1.zip"
    mode "0644"
    notifies :run, "execute[install-play]", :immediately
    action :create_if_missing
end

site-cookbooks/play/attributes/default.rb

default[:play][:version] = "2.2.1"
default[:play][:install_dir] = "/usr/src"

unzipとかシンボリックリンク作成とかは一度失敗すると二度とできそうにない。

あと、URIから別バージョンをとってくることが出来ないっぽくって、

http://downloads.typesafe.com/play/2.0.4/play-2.0.4.zip

にアクセスしようとしてもaccess deniedになるのでどうしたものかと思う。