サーバーの構成管理ツールChefを試しに使ってみる。

Chefの設定ファイルを生成するための以下のコマンドで雛形をダウンロードする。

git clone git://github.com/opscode/chef-repo.git

chef-repoというディレクトリができるので、cdでディレクトリに移動して以下のコマンドを実行する。

$ rake new_cookbook COOKBOOK=test

testというディレクトリが生成されて、その中にChef設定ファイルのひな形が生成される。

test/templates/defaultにcdしてtest.conf.erbというファイルを作成して、内容は適当な文字列(例えばhogehoge)を入力しておく。

次にtest/recipes/default.rbにどんな設定ファイルを生成するかを以下のように記述する。

template "/tmp/test.conf" do
  owner "root"
  group "root"
  mode "0644"
end

これは/tmp/test.confというファイルをオーナーroot、グループroot、モードrw-r–r–で作成するという意味。

そして、chef-soloコマンドで設定通り実行されるか確認する。
chef-soloコマンドを動かすために~/.chef/solo.rbファイルを以下の内容で作成。

file_cache_path "/tmp/chef-solo"
cookbook_path "~/chef-repo/cookbooks"
role_path "~/chef-repo/roles"
log_level :debug

次に実行内容を記述した~/.chef/chef.jsonを作成。

"run_list": [
       "recipe[test]"
]

この例はCookbook “test”のレシピを実行するよう指定している。

chef-soloでsolo.rbとchef.jsonを指定して実行してみる。

$ sudo chef-solo -c ~/.chef/solo.rb -j ~/.chef/chef.json

/tmpにtest.confが作成されて、内容がtest.conf.erbに記述した内容になっていれば正常に動作している。

参考記事: Chefでサーバ管理を楽チンにしよう