単語を助動詞でつないだだけのタイトルですが、お察しの通り、node.jsをnvm
でバージョン管理するレシピを書こうと思った訳です。昨日、rbenv
のレシピを書いたので、その続き。同じ構成でまとめておきたいなと。
CookbookはGithubにおいております。
リファレンス
ぐぐってみても、ほとんど見つからなかったんですが、こういう構成はあまりニーズがないのかな。。。「Chefでサーバ作って壊す」っていうのを繰り返すことを考えると、確かにバージョン管理の必要性ってあんまりないのかも、、、現場はどうなのか興味あるなー(素人なもので。。。)
レシピ
今回はあまり苦労せずにできましたー
rbenv
と同じく、システム全体にnvm
をインストールする感じで、レシピの構成もrbenv
に合わせました。
git "/usr/local/nvm" do
repository "git://github.com/creationix/nvm.git"
reference "master"
action :sync
end
template "/etc/profile.d/nvm.sh" do
source "nvm.sh.erb"
mode 00644
end
# nvm listしたときにalias/ディレクトリがないとおこられるので、、
directory '/usr/local/nvm/alias' do
action :create
end
bash "install nodejs" do
code <<-EOC
source /usr/local/nvm/nvm.sh
nvm install #{node['nodejs']['version']}
EOC
# ここにnodeの本体がいる
creates "/usr/local/nvm/#{node['nodejs']['version']}"
end
テンプレート
ノードで定義したバージョンを使うようにしました。
あと、いろいろメッセージがでるのでゴミ箱に捨てて受け流すようにしましたw
source /usr/local/nvm/nvm.sh
nvm use <%= node['nodejs']['version'] %> >/dev/null 2>&1
今までシェルで書いていたサーバ構築をシェフってるんですけど、まだまだたくさんあるな、、、
和布蕪とかどうすんの??