Chefで特定のレシピを一つだけ走らせる方法
Chefの動きを確認する時に毎回全部のレシピを当ててると時間がかかってめんどくさいことこの上ないので単体で走らせる方法を探してみました。
試してみてダメだったこと
chef-apply
とかsandwich
とか色々あるようなんですが、依存関係などの読み込み周りを同一にするのが出来ないようでよくわからなかったので使わないことにしました。
やりたいのはrun_list
で走らせる対象を一つだけにしたかったので、nodes/postgresql.json
など試したいレシピだけを指定したノードファイルを作ってみたんですが、これはファイル名がhost
と一致しないため完全に間違った試行だったようです。
成功した方法
run_list
を特定のレシピだけ対象にすればいいので--override-runlist
オプションを使えばやりたいことができました。
$ knife solo cook my_host --override-runlist "recipe[user]"
run_list
のデフォルトでrecipe
は省略可能なので
$ knife solo cook my_host --override-runlist "user"
でOKです。
参考
[Specifying which cookbooks to run with Chef Solo – Stack Overflow][1]