chef-soloで(一例として)PostgreSQLサーバをインストールして起動するまで。
上手い人はもっと短く出来るんだろうなーと思いつつ。
それと、あわよくばchef-serverを誰か最短手で書いてくれないかなーと思いつつ。
1: http://www.opscode.com/chef/install/ から自分の環境のRPMを取得する
Chef Client > Enterprise Linux > 6 > i686 > 11.4.4-2
2: rpmをインストールする
# rpm -ivh chef-11.4.4-2.el6.i686.rpm
3:knifeの設定
# knife configure
全てデフォルトのままエンター
4:/etc/chef/solo.rbを作成
file_cache_path "/tmp/chef-repo"
cookbook_path ["/hoge/chef-repo/cookbooks"]
5:gitからレポジトリ構成をクローン
# cd /hoge
# git clone http://github.com/opscode/chef-repo.git
※/hoge/は4:のsolo.rbで指定したcookbook_pathの場所で、chef-repo以下はgitで作成される。
6:クックブック作成
# knife cookbook create postgres -o ./chef-repo/cookbooks
7:レシピ作成
./chef-repo/cookbooks/postgres/recipe/default.rb を編集
# yum install
yum_package "postgresql-server" do
action :install
end
# initdb
version_file = "/var/lib/pgsql/data/PG_VERSION"
if not File.exists? version_file then
execute "postgresql-init" do
command "service postgresql initdb"
end
sleep 5
end
# start
service "postgresql" do
action [:enable, :restart]
end
8:設定用JSON ./chef-repo/postgres.json を作成
{
"run_list": ["recipe[postgres]"]
}
9:実行
# chef-solo -j ./chef-repo/postgres.json
後はひたすら6~9を繰り返すだけです。
chef-serverは大仰なのでcapistranoと組み合わせるってのも良いかも。
下記サイトとか素敵。
chef-solo + capistrano で複数ホストを管理する
http://d.hatena.ne.jp/sfujiwara/20120705/1341477250