サーバーの自動構築ツール、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
とりあえず、パッケージをインストールするくらいの作業を試せたところで今日はここまで。