ページ ツリー

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

...

Section
Column

Resource

Resource はプロビジョニング先の "ある部分" の "あるべき状態" を宣言的に記述する DSL です。
Chef でのプロビジョニングは、Resource があるべき状態に収束されることを意味します。

Recipe

Recipe は Resource を記述するためのファイルです。
Ruby のコードをそのまま使って Resource を定義できます。 

プロビジョニングを実行すると、Recipe がコンパイルされ、Recipe に定義した Resource が Resource Collection に登録されます。 
Resource の収束は、基本的には Resource Collection に登録された順で行われます。

Cookbook

Cookbook は Recipe を意味のある単位で取りまとめたものです。
Cookbook は複数の環境で使いまわすことができ、たいていの場合はインストールするアプリケーションやサービス単位で作成されます。 

Column

Drawio
diagramNamechef 用語.drawio
revision1

 

Cookbook をつくる

Cookbook のひな形の生成

...

Recipe には Resource を定義していきます。
Resource とは、プロビジョニング先の ”ある部分” の ”あるべき状態” を宣言的に定義したもので、具体的には以下の要素で構成されます。を宣言する DSL で、具体的には以下の要素で構成されます。

Section
Column

ResourceType

Resource の型を表します。

yum パッケージの状態を定義する yum_package、任意のコマンドの実行状態を定義する execute などがあります。

ResourceType によって、指定できる Attribute や Action は異なります。
詳細は各 ResourceType の公式ドキュメントに記載されているので、確認するようにしてください。

Name

Resource の名前です。
ユニークな名前を指定します。

Attribute

Resource の属性です。
Resource がどのような状態であるべきか、詳細な情報を指定します。

yum_package であれば package_name や version などを指定できます。
yum_package
 では Resource の Name がそのまま package_name に指定される仕様になっています。

Action

Resource の収束のされ方です。 

yum_package であれば、インストールされている状態(:install)、アンインストールされている状態(:remove)などを指定できます。

Column

Drawio
diagramNameyum_package.drawio
revision1

ヒント

ResourceType についての公式ドキュメントは Chef の公式ドキュメントから辿ると非常に見つけにくいです。
Google で「Opscode <ResourceType 名>」などと検索したほうが早く見つけられたりします。
また、Mac であれば Dash に Chef のドキュメントがあるので、これを使うのもオススメです。

...