目次

環境構築用のスクリプト

base

#!/bin/bash

yum -y install gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison wget unzip git 

# rbenv
cd ~
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="${HOME}/.rbenv/bin:${PATH}"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
export PATH="${HOME}/.rbenv/bin:${PATH}"
eval "$(rbenv init -)"

mkdir -p ~/.rbenv/plugins
cd ~/.rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git

rbenv install 1.9.3-p327
rbenv global 1.9.3-p327
rbenv rehash

gem install chef
rbenv rehash

# Clone Cookbooks
mkdir ~/chef
cd ~/chef
git clone git://github.com/opscode/cookbooks.git cookbooks

# Create Chef Directories
mkdir /etc/chef
mkdir /var/chef-solo

# Initial Setting
cat << EOS > /etc/chef/solo.rb
file_cache_path "/var/chef-solo"
cookbook_path ["/root/chef/cookbooks"]
role_path "/root/chef/role"
json_attribs "/etc/chef/node.json"
log_level :debug
EOS

echo '{ "run_list": [] }' > /etc/chef/node.json

CentOS 5.9にて調整

#!/bin/bash
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm 

yum -y install gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison wget unzip git 

# rbenv
rm -rf ~/.rbenv
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc

# ruby-build
rm -rf /tmp/ruby-build
git clone git://github.com/sstephenson/ruby-build.git /tmp/ruby-build
cd /tmp/ruby-build
./install.sh

# ruby
rbenv install 1.9.3-p327
rbenv global 1.9.3-p327
rbenv rehash

# chef & knife
gem install chef --no-ri --no-rdoc
gem install knife-solo --no-ri --no-rdoc
gem install capistrano --no-ri --no-rdoc
source ~/.bashrc 

# initialize
cd ~
knife solo init chef-solo
knife cookbook create sample -o ./chef-solo/cookbooks/
echo '{ "run_list": ["recipe[sample]"] }' > /root/chef-solo/node.json

rm -rf /root/chef-solo/solo.rb
cat << EOS > /root/chef-solo/solo.rb
file_cache_path "/tmp/chef-solo"
cookbook_path ["/root/chef-solo/cookbooks"]
role_path "/root/chef/role"
json_attribs "/tmp/chef-solo/roles"
log_level :debug
EOS


echo "e.g.) chef-solo -c /root/chef-solo/solo.rb -j /root/chef-solo/node.json"

CentOS 6.4で調整

#!/bin/bash

##
## chef-build for CentOS 6.x 
##

#rpm -Uvh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
#rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
#rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

yum -y install gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison wget unzip git --exclude=*.i386

# rbenv
rm -rf ~/.rbenv
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc

# ruby-build
rm -rf /tmp/ruby-build
git clone git://github.com/sstephenson/ruby-build.git /tmp/ruby-build
cd /tmp/ruby-build
./install.sh

# ruby
rbenv install 1.9.3-p327
rbenv global 1.9.3-p327
rbenv rehash

# chef & knife
gem install chef --no-ri --no-rdoc
gem install knife-solo --no-ri --no-rdoc
gem install capistrano --no-ri --no-rdoc
source ~/.bashrc

## initialize
#cd ~
#knife solo init chef-solo
#knife cookbook create sample -o ./chef-solo/cookbooks/
#echo '{ "run_list": ["recipe[sample]"] }' > /root/chef-solo/node.json
#
#rm -rf /root/chef-solo/solo.rb
#cat << EOS > /root/chef-solo/solo.rb
#file_cache_path "/tmp/chef-solo"
#cookbook_path ["/root/chef-solo/cookbooks"]
#role_path "/root/chef/role"
#json_attribs "/tmp/chef-solo/roles"
#log_level :debug
#EOS


echo "run 'source ~/.bashrc' & test chef-solo"
echo "e.g.) chef-solo -c /root/chef-solo/solo.rb -j /root/chef-solo/node.json"