Chef で cookbook を自作する

サーバ構成管理ツールの Chef は、coookbook と呼ばれる設定を用意すれば、
コマンド一発で、必要なソフトをインストール・設定が可能になります。

簡単なサンプルを試してこれはいける!と思ったのもつかの間、
cookbook を自作しようとすると、とたんにハードルが高くなってしまいます。

1. 自作以前の問題

cookbook を自作以前に以下の問題が立ちはだかります。

  1. サーバを手動でインストールや設定ができること
  2. ruby (& erb) やシェルスクリプトなどが書けること

意外とこの2つが壁になってるのではないでしょうか?

2. Chef 用語の問題

Chef独自の用語が多く圧倒されてしまいます。
cookbook, recipe, attribute, provider, resource, definision, metadata, .... うへぇ。
まずは、日本語のブログを読みあさりました。ググるのに疲れました・・・。

実は、本家にも用語集が用意されているので、
コツコツ読んでいくことで随分理解が深まりました。

http://wiki.opscode.com/display/chef/Glossary

3. まずはレシピから

Cookbook に関する説明はこちら:
http://wiki.opscode.com/display/chef/Cookbooks

元々用意されているリソースを組み合わせて、簡単なレシピを組んでみました。
以下のドキュメントを参考にします。

http://wiki.opscode.com/display/chef/Resources

初めはあまり凝ったことをしようとしない方がいいかもしれません。

4. Cookbook のお手本

本家の cookbook がお手本になります。
https://github.com/opscode/cookbooks

いきなりお手本を見て作ろうとファイルをのぞいても、何をやっているのか分かりませんでした。
各cookbook の README.md に書かれた使い方から、意図をつかんでいけば良さそうです。


っと、ここまで書いてきましたが、まとまりのない内容ですね・・・まだまだ理解が足りてない証拠です。サーバセットアップの自動化への道は長そうです。