手軽に chef-solo を実行するためにスケルトンを作ってくれるやつ

追記 2012/08/03:knife-solo という gem をインストールすると knife kitchen というコマンドが使えるようになるんだけど、こっちのほうが chef-solo のための豪華なスケルトンを作ってくれてよさそうかもです。

手軽に chef-solo を実行するためにスケルトンを作ってくれるやつ (ユースケース要検討) — Gist

Chef はとっつきにくいのがネックだなと思っていて、たとえば chef-solo を実行するのにもいちいち solo.rb と node.json を作って cookbooks ディレクトリを作って knife create cookbooks foo とかやらなければならないのがだるいから、その部分を自動化するスクリプトを書いた。

$ ruby chef-solo-skelton.rb foo
## chef-solo -c /Users/tily/foo/solo.rb -j /Users/tily/foo/node.json
[Sun, 29 Jul 2012 12:43:15 +0900] INFO: *** Chef 0.10.8 ***
[Sun, 29 Jul 2012 12:43:19 +0900] INFO: Setting the run_list to [] from JSON
[Sun, 29 Jul 2012 12:43:19 +0900] INFO: Run List is []
[Sun, 29 Jul 2012 12:43:19 +0900] INFO: Run List expands to []
[Sun, 29 Jul 2012 12:43:19 +0900] INFO: Starting Chef Run for linwttaa.local
[Sun, 29 Jul 2012 12:43:19 +0900] INFO: Running start handlers
[Sun, 29 Jul 2012 12:43:19 +0900] INFO: Start handlers complete.
[Sun, 29 Jul 2012 12:43:19 +0900] INFO: Chef Run complete in 0.001156 seconds
[Sun, 29 Jul 2012 12:43:19 +0900] INFO: Running report handlers
[Sun, 29 Jul 2012 12:43:19 +0900] INFO: Report handlers complete

$ tree foo/
foo/
├── cookbooks
├── node.json
└── solo.rb
 
1 directory, 2 files

レシピを指定すると、自動で opscode 公式の cookbook をインストールしてくれたりもする。

ruby chef-solo-skelton.rb hoge apache2 php mysql

まだ使いやすいかよく分からないので、必要になったとき自分で使いつつエンハンスしたい。