ちょっと気付くのに遅れたのですが、9/7に"Chef"の最新バージョンである0.10.14がリリースされました。
そう、0.10.14と言えば待望の「dry-run」(--noop mode)の機能が付くと、本家のIssue Trackerでも挙がっていたんです。
DevOps Days Tokyo 2012でも、Opscodeの方から言及があったので、僕的には心待ちにしていました。
あと、Chefのdry-runについては、既に実装がかなり進んでいて、近々0.10.14?あたりでリリースされるという話も聞けて、かなり満足。
「DevOps Days Tokyo 2012」でChefの話をしてきたので資料を公開します - 元RX-7乗りの適当な日々
というわけで早速、簡単にですが試してみましたYO!
# chef-client -v Chef: 10.14.0
とりあえずバージョンアップ。
-W, --why-run Enable whyrun mode
"--help"で確認。このオプションです。
# chef-client -W
というわけで、"-W"オプションを付けて実行してみます。
# chef-client -W [Mon, 10 Sep 2012 19:45:34 +0900] WARN: Forcing formatter of 'doc' to capture whyrun output. Starting Chef Client, version 10.14.0 [Mon, 10 Sep 2012 19:45:34 +0900] INFO: *** Chef 10.14.0 *** [Mon, 10 Sep 2012 19:45:35 +0900] INFO: Run List is [recipe[memcached::recipe-name]] [Mon, 10 Sep 2012 19:45:35 +0900] INFO: Run List expands to [memcached::recipe-name] [Mon, 10 Sep 2012 19:45:35 +0900] INFO: Starting Chef Run for chef-test01 [Mon, 10 Sep 2012 19:45:35 +0900] INFO: Running start handlers [Mon, 10 Sep 2012 19:45:35 +0900] INFO: Start handlers complete. resolving cookbooks for run list: ["memcached::recipe-name"] [Mon, 10 Sep 2012 19:45:35 +0900] INFO: Loading cookbooks [memcached] Synchronizing Cookbooks: - memcached Compiling Cookbooks... Converging 12 resources Recipe: memcached::recipe-name * package[memcached] action install[Mon, 10 Sep 2012 19:45:35 +0900] INFO: Processing package[memcached] action install (memcached::recipe-name line 12) - Would install version 1.4.13-1 of package memcached
↑の例だと、まずはパッケージがインストールされることがわかります。こんな感じでRecipeに書かれてある通りにですが、何が起こるかがズラズラと表記されていきます。
- Would create template[/etc/memcached.conf] --- /tmp/chef-tempfile20120910-30172-p2q4lz-0 2012-09-10 19:45:52.093074595 +0900 +++ /tmp/chef-rendered-template20120910-30172-1mqpz0l-0 2012-09-10 19:45:52.082073426 +0900 @@ -0,0 +1,35 @@ + +###### <<<<< before /usr/local/bin/memcached -help >>>> ##### +#-p <num> TCP port number to listen on (default: 11211) +#-U <num> UDP port number to listen on (default: 0, off) +#-s <file> unix socket path to listen on (disables network support) +#-l <ip_addr> interface to listen on, default is INDRR_ANY +#-d run as a daemon ・・・・・省略・・・・・
template respurceで配置している設定ファイルも、各リソースのコンパイルが実施された後なので、attributeから代入された値も確認できました。
こんな感じで、定義しているresourceの1つ1つで、どういうことが起こるのかを、少し読みづらい形ではありますが、きちんと確認することができますね。
* package[hoge-fuga] action install[Mon, 10 Sep 2012 19:45:38 +0900] INFO: Processing package[hoge-fuga] action install (memcached::recipe-name line 12) * No version specified, and no candidate version available for hoge-fuga * Assuming a repository that offers hoge-fuga would have been configured
ちなみに存在しないパッケージを入れようとすると、ないよーと言ってくれる。ダメなやつは、もうちょっと大々的にアピールしてほしい気もしますが。
[Mon, 10 Sep 2012 19:45:52 +0900] WARN: In whyrun mode, so NOT performing node save. [Mon, 10 Sep 2012 19:45:52 +0900] INFO: Chef Run complete in 17.244036 seconds [Mon, 10 Sep 2012 19:45:52 +0900] INFO: Running report handlers [Mon, 10 Sep 2012 19:45:52 +0900] INFO: Report handlers complete Chef Client finished, 13 resources updated
無事、dry-runが終わると、変更が予定されているリソースの数が記載されていますね。
ちなみにchef-server側は特にバージョンアップせずとも使うことができました。(サーバは0.10.8でした)
Chefは、これまでDry runができなかったことが、Puppetなどと比べ物足りない点としてありましたが、機能自体のファーストリリースであることを考えると、これはかなり便利に使えるようになったと思います。さらに今後の改善に期待できますね!
それでは!=͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́
あわせて読みたい
Test-Driven Infrastructure With Chef
- 作者: Stephen Nelson-smith
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2011/07/07
- メディア: ペーパーバック
- クリック: 18回
- この商品を含むブログを見る