fedora 16 へchefをinstall その2
[chef]
先日構築したchefサーバメモの続き
今回は新規cookbookの作成とclientへの同期。
サーバ側
cookbookを作成
# knife cookbook create testcookbook ** Creating cookbook testcookbook ** Creating README for cookbook: testcookbook ** Creating metadata for cookbook: testcookbook
- 作成された場所を確認
# updatedb # locate testcookbook /var/chef/cookbooks/testcookbook /var/chef/cookbooks/testcookbook/README.rdoc /var/chef/cookbooks/testcookbook/attributes /var/chef/cookbooks/testcookbook/definitions /var/chef/cookbooks/testcookbook/files /var/chef/cookbooks/testcookbook/libraries /var/chef/cookbooks/testcookbook/metadata.rb /var/chef/cookbooks/testcookbook/providers /var/chef/cookbooks/testcookbook/recipes /var/chef/cookbooks/testcookbook/resources /var/chef/cookbooks/testcookbook/templates /var/chef/cookbooks/testcookbook/files/default /var/chef/cookbooks/testcookbook/recipes/default.rb
erbファイルを作成
# vim templates/default/test.conf.erb sync_test
recipeファイルを作成
# vim recipes/default.rb template "/tmp/test.conf" do source "test.conf.erb" variables :sync_test=> node[:sync_test] action :create end
attributesをファイル作成
# vim attributes/testcookbook.rb sync_test "test"
cookbookをupload
# knife cookbook upload testcookbook Uploading testcookbook [0.0.1]
※uploadしないとchef-serverに変更などが反映されない
client側
chef-clientを実行
先ほど作成したjsonファイルを読み込ませてやる
# chef-client -j /root/.chef/chef.json [Mon, 12 Dec 2011 14:59:04 +0900] INFO: *** Chef 0.10.4 *** [Mon, 12 Dec 2011 14:59:05 +0900] INFO: Setting the run_list to ["recipe[testcookbook]"] from JSON [Mon, 12 Dec 2011 14:59:05 +0900] INFO: Run List is [recipe[testcookbook]] [Mon, 12 Dec 2011 14:59:05 +0900] INFO: Run List expands to [testcookbook] [Mon, 12 Dec 2011 14:59:05 +0900] INFO: Starting Chef Run for chef-client [Mon, 12 Dec 2011 14:59:05 +0900] INFO: Loading cookbooks [testcookbook] [Mon, 12 Dec 2011 14:59:05 +0900] INFO: Processing template[/tmp/test.conf] action create (testcookbook::default line 10) [Mon, 12 Dec 2011 14:59:05 +0900] INFO: template[/tmp/test.conf] updated content [Mon, 12 Dec 2011 14:59:06 +0900] INFO: Chef Run complete in 0.583654 seconds [Mon, 12 Dec 2011 14:59:06 +0900] INFO: Running report handlers [Mon, 12 Dec 2011 14:59:06 +0900] INFO: Report handlers complete
指定した場所を確認してみる
# ls /tmp |grep test test.conf
中身を確認
# cat /tmp/test.conf sync_test
ちゃんと同期できているようだ。
client側でファイルを修正したりした後でもchef-clientを実行すればserver側のrecipe内容で同期される。