2011年7月21日木曜日

chef概念整理

・cookbookの単位は、基本的に製品やモジュールごと。たとえばmysql、ntpなど。
・cookbookの中にrecipeを作成する。mysqlという大きい括りの中で設定を分けるには、run listで指定するrecipeを使い分ける。
・次のようなrecipe構成の場合、run listへの指定としてrecipe[apache2::mod_ssl]とやると、mod_ssl.rbが使われる。ただのrecipe[apache2]だと、default.rbが使われる。
cookbooks/
cookbooks/apache2/
cookbooks/apache2/recipes/
cookbooks/apache2/recipes/default.rb
cookbooks/apache2/recipes/mod_ssl.rb
 

・nodeのrun listにrecipeを指定することも、cookbookを指定することも可能。
% knife node run list add NODENAME "recipe[apache2]"

・roleにはrecipeを指定する。

・recipeの中では変数を用いて、databagの文字列を入れることができる。


・attributeはnodeごとに異なる環境情報。たとえばip-address, hostnameなど。
・attributeはcookbook , environment, role, nodeに対して設定できる。

・cookbook_fileをcookbookに入れてアップすれば、そのファイルを展開に利用できる。ファイルにはアクセス権など設定できる。
・cookbook/filesのディレクトリに入れる。filesディレクトリの下にOSタイプのサブディレクトリを作成すれば、OSごとにファイル展開場所を分けられる。
・展開ファイルに変更させたい文字列がある場合、filesではなくtemplateを使用する。fileは全てのnodeに対して同じファイル内容を展開するときに使う。

tmplate
http://wiki.opscode.com/display/chef/Templates
・templateはfileと同じようにOSごとに配布場所を変更するには、templateディレクトリの下にOSディレクトリを作成する。
・templateの拡張子は.erb

0 件のコメント:

コメントを投稿