CentOS 6.4 minimal の環境に Chef-solo を入れる。(必然的にRubyもインストール)


注意

現在は、ChefDKのrpmで簡単にChef及びknifeをインストール可能です。
以下の手順は、昔のやり方ですので参考にしないでください。

想定環境

CentOS release 6.4 (Final) (minimumインストール)

コンパイル等に必要なmoduleのインストール

yum groupinstall "Development Tools"

yum install libffi-devel openssl-devel readline-devel zlib-devel git subversion gdbm-devel httpd-devel libcurl-devel ncurses-devel openssl-devel readline-devel sqlite-devel zlib-devel 

libyaml-devel を 導入するために、epel レポジトリを導入。(通常epelを使わない設定に変更)

rpm -Uvh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
sed -i "s%enabled=1%enabled=0%g" /etc/yum.repos.d/epel.repo
yum --enablerepo=epel install libyaml-devel

Rubyインストール

cd
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p327.tar.gz
tar xvzf ruby-1.9.3-p327.tar.gz
cd ruby-1.9.3-p327
./configure --prefix /opt/ruby
make;make install

Chefのインストール

/opt/ruby/bin/gem install chef
/opt/ruby/bin/gem install knife-solo

Chefで使うオペレーションアカウントの作成

useradd chef-ope

sudo su  - chef-ope

/opt/ruby/bin に Pathを通す。

echo "PATH=\"$PATH\":/opt/ruby/bin/" >> ~chef-ope/.bashrc

source ~chef-ope/.bashrc

Knife 設定

knife configure

Chefのレポジトリ作成

knife solo init chef-repo

Chefレシピを作成して、うまくツールが動かなかったら、

~/.chef/knife.rb に対して、下記のように追記してパスを通す。

cookbook_path [
  "/home/chef-ope/chef-repo/cookbooks",
  "/home/chef-ope/chef-repo/site-cookbooks"
]
role_path       '/home/chef-ope/chef-repo/roles'
data_bag_path       '/home/chef-ope/chef-repo/data_bags'