chef-solo を使って ntpd をインストール

CentOS6.4 で Ruby1.9.3, RubyGems をインストールしてある環境で、chef-solo を使って ntpd をインストールしてみました。

ここでは、chef, knife-solo をインストールするところからスクリプトに含めています。

#! /bin/sh
ruby=ruby-1.9.3-p392
rubygems=rubygems-2.0.3

/usr/local/ruby/${ruby}/bin/gem install chef knife-solo

mkdir -p $HOME/chef-solo/cookbooks

cat > $HOME/chef-solo/solo.rb  <<EOF
file_cache_path "/tmp/chef-solo"
cookbook_path   "/root/chef-solo/cookbooks"
EOF

cat > $HOME/chef-solo/chef.json <<EOF
{
  "run_list": [ "recipe[ntp]" ]
}
EOF

/usr/local/ruby/${ruby}/bin/knife cookbook create ntp -o $HOME/chef-solo/cookbooks

cat > $HOME/chef-solo/cookbooks/ntp/recipes/default.rb <<EOF
# Cookbook Name:: ntp
# Recipe:: default
package "ntp" do
  action :install
end
 
service "ntpd" do
  supports :status => true, :restart => true
  action [ :enable, :start ]
end
 
template "/etc/ntp.conf" do
  source "ntp.conf"
  group "root"
  owner "root"
  mode "400"
  notifies :restart, "service[ntpd]"
end
EOF

cat > $HOME/chef-solo/cookbooks/ntp/templates/default/ntp.conf <<EOF
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1 
restrict -6 ::1
server -4 ntp.nict.jp iburst
server -4 ntp.nict.jp iburst
server -4 ntp.nict.jp iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
EOF

/usr/local/ruby/${ruby}/bin/chef-solo -c $HOME/chef-solo/solo.rb -j $HOME/chef-solo/chef.json

最後の行で、chef-soloを実行してレシピを適用しています。

ちなみに、作成したディレクトリ構成は下記のようになります。

/root/chef-solo/
|-- chef.json
|-- cookbooks
|   `-- ntp
|       |-- CHANGELOG.md
|       |-- README.md
|       |-- attributes
|       |-- definitions
|       |-- files
|       |   `-- default
|       |-- libraries
|       |-- metadata.rb
|       |-- providers
|       |-- recipes
|       |   `-- default.rb
|       |-- resources
|       `-- templates
|           `-- default
|               `-- ntp.conf
`-- solo.rb

$HOME/chef-solo/cookbooks にレシピを追加していって、$HOME/chef-solo/chef.json に実行するレシピを記載して、「chef-solo -c ./solo.rb -j ./chef.json」を実行すると、同じ環境がどこでも用意できるということになります。

同じタグの記事: CentOS
同じタグの記事: CentOS6
同じタグの記事: CentOS6.4
同じタグの記事: chef-solo
同じタグの記事: Linux
同じカテゴリの記事: Linux
関連書籍: CentOS