サーバーの自動構築ツール、Chefが熱いらしいのでちょっと勉強して見ることにした。
せっかくなので、自分が勉強していく記録をとってみる。

まずは、環境構築

Virtual Boxインストール後、CentOSのイメージをダウンロードして利用しはじめることにする。
イメージダウンロード元; http://virtualboxes.org/images/centos/
今回は、CentOS 6.0 base x86を利用した。

落としてきたイメージを解凍後、Virtualboxでイメージを起動するまえに設定からホストオンリーネットワークを有効にしておく。

ログイン後、VirtualBoxのイメージが独特なので以下のような環境設定をおこなった。

パスワード変更;
# passwwd

キーボードの一時的なUS化
# loadkeys us
キーボード恒久的な設定変更
# vi /etc/sysconfig/keyboard

KEYTABLE=”us”
MODEL=”pc105+inet”
LAYOUT=”us”
KEYBOARDTYPE=”pc”

ホストオンリーネットワーク側のNICの設定
# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=”eth1″
BOOTPROTO=”STATIC”
NM_CONTROLLED=”yes”
ONBOOT=”yes”
IPADDR=”192.168.56.10″
NETMASK=”255.255.255.0″
NETWORK=”192.168.56.0″

Gitのインストール
# yum install git

ここから、本格的にChefを使うための環境設定

Chefのインストール
# curl -L http://www.opscode.com/chef/install.sh | bash

これだけでChefはインストールできた。

あとは、簡単なパッケージインストール等を試してみた。

リポジトリのひな形取得

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

knife の初期設定

# knife configure
– ひとまずすべてデフォルトのままで

クックブックの作成
# cd chef-repo
# knife cookbook create hello -o cookbooks

作成の確認
# ls -la cookbooks/hello/

レシピの編集
# vi cookbooks/hello/recipes/default.rb

JSONファイルを用意
# vi localhost.json

// localhost.json
{
“run_list” : [
“recipe[hello]”
]
}

設定ファイルsolo.rbを作成

# vi solo.rb

file_cache_path “/tmp/chef-solo”
cookbook_path [“/root/chef-repo/cookbooks”]

Chef soloコマンドの実行
# chef-solo -c solo.rb -j ./localhost.json

パッケージのインストール
# vi cookbooks/hello/recipes/default.rb

package “zsh” do
action :install
end

Chef-soloを実行

複数パッケージのインストール
# vi cookbooks/hello/recipes/default.rb

%w{zsh gcc make readline-devel}.each do | pkg |
package pkg do
action :install
end
end

とりあえず、パッケージをインストールするくらいの作業を試せたところで今日はここまで。