LoginSignup
6
6

More than 5 years have passed since last update.

npm cookbook で npm_package "pm2" など

Posted at

概要

npm cookbook の使い方を覚えて npm_package 'pm2' などと書くことができるようになった。

手順はこんな感じ。

  1. npm と、依存する cookbooks を取ってくる
    • cookbooks を入れてあるディレクトリで git clone https://github.com/balbeko/chef-npm.git npm などして取ってくる。 ディレクトリ名は npm で!
    • あと、chef-npm が依存してる nodejs とか、nodejs が依存してる apt とか yum とか build-essential を取ってくる。
    • 面倒臭ければ Berksfile に cookbook 'npm' 書けば一発なんじゃないかな
  2. 自分の cookbook の metadata.rb に depends 'npm' を書き足す。

これで、npm_package リソースを使えるようになって、レシピに npm_package 'pm2' などと書くことができるようになった。ちなみにいままでは bash リソースにしぶしぶ npm install とか書いてた。

npm_package の使い方

action の使い方は USAGE に書いてある。providers/package.rb 読むと、action と npm install との対応がこうなってることが分かる。

action 対応する npm install
:install npm install -g
:install_local npm install
:install_from_json npm install
:uninstall npm uninstall -g
:uninstall_local npm uninstall

アプリケーションの開発と違って、今やりたいのはインフラのセットアップだから、デフォルト(:install) が -g になってるのは使いやすいと思った。

私はこのように間違えました

最初、cookbooks に git clone https://github.com/balbeko/chef-npm.git して、自分の metadata.rb に depends 'chef-npm' と書いてしまっていた。こうすると、No resource or method named 'npm_package' というエラーが出て cookbooks のコンパイルに失敗する。

cookbook をどんな名前のディレクトリとして設置すればいいかは、metadata.rb の name に書いてあるので、それを元に決めよう。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6