スライド読んだ: Beginner Chef Antipatterns
http://www.opscode.com/blog/chefconf-talks/beginning-chef-antipatterns-julian-dunn/
- application/library cookbook pattern って、やっぱりそこに行き着くか
- opscode の community cookbook の wrapper を書くというのはちょっと無理がある気がする
- role 相当の cookbook を使えというのも書いてある
- recipe で role 相当のことを、というのは僕とほぼ同じことをやってて面白い
- role attribute を(優先度や評価のタイミングの観点から)使いたかったけど、やはりバージョン管理を考えると使うべきでないのかも
- 事実、role を使って運用してるシステムでは role の attribute や run_list に変更加えたいとき苦しかったし
- だとすると、cookbook の命名ルールを roles-* にした上で、role 周りはおおかた今のままにしておくのがいいかも知れない
- もちろん json ファイルは使わない
- そういえば、role に "environment run list" とかいうのがあった気がする... → http://docs.opscode.com/essentials_roles.html#set-per-environment-run-lists
- 要望のままに増改築を繰り返した結果がこれ、という感じだろうか
- role attribute も environment 毎に定義できれば... それだと完全に environment の下位概念になる
- temporal と versioned
- ちゃんと言葉で表してなくてもやっとしてた概念
- temporal なものを git で管理しようとすると破綻する。その逆も然り?
- そういえば最近 chef-shell あまり使ってない。why-run モードや chef-client 実行時のログが分かりやすくなった & chef の動作をそれなりに理解してきたからか
自分が独自に考えてたのと同じような所に行き着いてたので少し安心した。