ResourceResource はプロビジョニング先の "ある部分" の "あるべき状態" を宣言的に定義する を宣言的に記述する DSL です。 各 Resource にはユニークな名前を指定する必要があり、それがプロビジョニング先の ”どの部分か” を表しています。 そして、Resource の do ~ end ブロックに ”あるべき状態” を定義します。(ResourceType によって定義できる内容は異なります。)Chef でのプロビジョニングは、Resource があるべき状態に収束されることを意味します。 RecipeRecipe は Resource を記述するためのファイルです。 Ruby のコードをそのまま使って Resource を定義できます。 Recipe プロビジョニングを実行すると、Recipe がコンパイルされ、Recipe に定義した Resource はプロビジョニングの実行時に解釈され、収束するべき が Resource がキューイングされます。 基本的に、Resource は Recipe に定義した順でキューイングされます。 Recipe に書いた Ruby コードは Resource が収束されるときでなく、キューイングされるときに実行されることに注意してください。 Collection に登録されます。 Resource の収束は、基本的には Resource Collection に登録された順で行われます。 CookbookCookbook は Recipe を意味のある単位で取りまとめたものです。 Cookbook は複数の環境で使いまわすことができ、たいていの場合はインストールするアプリケーションやサービス単位で作成されます。 Cookbook も名前で管理されるので、ユニークで、かつ内容を表す名前をつけましょう。 |