fedora 16 へchefをinstall その3
[fedora][chef]
公式サイトのrecipeを使ってapacheインストールを試す。
githubからrecipe集をインストール
cd /var/chef/cookbooks git clone https://github.com/opscode/cookbooks
そのままUPLOADしても読み込んでくれなかったので、
mv cookbooks/* .
で
# knife cookbook upload -a Uploading 7-zip [1.0.0] Uploading COOKBOOK [0.0.1] Uploading activemq [1.0.2] Uploading ant [0.10.1] Uploading apache2 [1.0.4] Uploading apparmor [0.9.0] 省略
web-uiで確認してみる
正常にUPLOADできたようだ。
clientへapacheをインストールしてみる
chef-client コマンドを実行する
# chef-client -j /root/.chef/chef-apache.json [Mon, 12 Dec 2011 20:24:23 +0900] INFO: *** Chef 0.10.4 *** [Mon, 12 Dec 2011 20:24:25 +0900] INFO: Setting the run_list to ["recipe[apache2]"] from JSON [Mon, 12 Dec 2011 20:24:25 +0900] INFO: Run List is [recipe[apache2]] [Mon, 12 Dec 2011 20:24:25 +0900] INFO: Run List expands to [apache2] [Mon, 12 Dec 2011 20:24:25 +0900] INFO: Starting Chef Run for SL6 [Mon, 12 Dec 2011 20:24:25 +0900] INFO: Loading cookbooks [apache2] 省略 [Mon, 12 Dec 2011 20:24:45 +0900] INFO: Processing service[apache2] action restart (apache2::default line 32) [Mon, 12 Dec 2011 20:24:47 +0900] INFO: service[apache2] restarted [Mon, 12 Dec 2011 20:24:47 +0900] INFO: Chef Run complete in 22.739 seconds [Mon, 12 Dec 2011 20:24:47 +0900] INFO: Running report handlers [Mon, 12 Dec 2011 20:24:47 +0900] INFO: Report handlers complete
確認
# rpm -qa |grep httpd httpd-tools-2.2.15-9.sl6.3.x86_64 httpd-2.2.15-9.sl6.3.x86_64
インストールされている。
- http.confを見てみる
# cat /etc/httpd/conf/httpd.conf # # Generated by Chef # # Based on the Ubuntu apache2.conf ServerRoot "/etc/httpd" 省略
chefのrecipiから生成されているようだ。
どこが反映されているか確認してみる
- /var/chef/cookbooks/apache2/templates/default/apache2.conf.erb
※該当箇所抜粋
# Generated by Chef # # Based on the Ubuntu apache2.conf ServerRoot "<%= node[:apache][:dir] %>"
- /var/chef/cookbooks/apache2/recipes/default.rb
※該当箇所抜粋
template "apache2.conf" do case node[:platform] when "redhat", "centos", "scientific", "fedora", "arch" path "#{node[:apache][:dir]}/conf/httpd.conf" when "debian","ubuntu" path "#{node[:apache][:dir]}/apache2.conf" end source "apache2.conf.erb" owner "root" group "root" mode 0644 notifies :restart, resources(:service => "apache2") end
その他めも
公式のレポジトリでは細かな設定ができるように構成されているが、
単純にパッケージのインストールのみしたい場合は以下の様にするだけ。
# vim testcookbook/recipes/default.rb yum_package "MySQL-server" do end
yum_packageを指定するとyumを使用してインストールを試みてくれる。
あとは同じように上記recipiを読み込むjsonファイルを作成してchef-clientを実行する
レポジトリからではなく直接rpmファイルを指定したい場合は以下の様にすればよい
package "[filename]" do action :install source "[filename].rpm" provider Chef::Provider::Package::Rpm end