概要
世の中は puppet よりも chef らしい...ということで、puppet もそこそこに chef を弄ってみることにした。
インストール
今回は chef-server ではなく、お手軽に chef を体験出来るらしい chef-solo をインストールしてみる。
1. 必要なパッケージをインストールする
# yum install ruby ruby-devel ruby-ri ruby-rdoc ruby-shadow gcc gcc-c++ automake autoconf make curl dmidecode # yum install rubygems # yum install git # gem install rake # gem install chef --no-ri --no-rdoc
2. chef-solo 用のユーザーを作成する
# groupadd -g 1000 services # useradd -g services -u 1001 chefsolo #chmod 755 /home/chefsolo # su - chefsolo
3. Chef リポジトリ雛形を GitHub から拝借
$ cd ~ $ git clone git://github.com/opscode/chef-repo.git $ cd chef-repo $ mkdir .chef $ mkdir ~/tmp
4. chef-solo 実行時の cookbook 等を設定する
$ vim .chef/solo.rb
以下のように記載する。
file_cache_path "/home/chefsolo/tmp/chef-solo" cookbook_path "/home/chefsolo/chef-repo/cookbooks"
5. JSON で適用するレシピを設定する
$ vim .chef/chef.json
以下のように記載する。
{ "run_list": [ "recipe[packages_install]" ] }
7. cookbook を作る
# su - chefsolo $ cd ~/chef-repo $ rake new_cookbook COOKBOOK=packages_install。
8. レシピを作成する
$ vim cookbooks/packages_install/recipes/default.rb
以下のように記載する。ruby っぽいな。
%w{tmux httpd php php-mysql}.each do |package_name| package package_name do action :install end end
今回は以下のパッケージをインストールした。
9. 改めて chef-solo を実行!
sudo chef-solo -c /home/chefsolo/chef-repo/.chef/solo.rb -j /home/chefsolo/chef-repo/.chef/chef.json
次の目標
- 引き続き chef-solo で各種設定周りを実現してみる
- chef-server をセットアップしてみる
謝辞(有難うございました)
- http://higelog.brassworks.jp/?p=654
- 奥さん(黙って寝ててくれて...)
BGM
- if / MonkyMajik