こんにちは。プラットフォームの小宮です。
最近chef流行ってますね。
せっかくだからこの波に乗ってプロダクト環境に合わせてやってみよう的な記事を書こうかと思います。
さっさとServerspecまでたどり着きたいんですが、今回は導入のみの記事でレシピなどはまた次回以降に。
やってみよう的なレベルなのでリファクタリングし甲斐のあるレシピになる予感がします。
さて今回Chef化を試みる環境はVPC上に移行する話になってます。(構成はweb2、db2、stg1、nat1です。ELB利用。soloで十分な感じ。)
Vagrant-awsでVPCつかう方法が可能なようなので、Vagrantを使用して構成管理を行いつつKnife-soloも使うことにします。
vagrantとsahara連携でOSの状態を保存してロールバックということが可能となります。
knife-soloだと/sbin等の下のrubyを消して入れ替えようとしてしまうことがあるらしいので、アプリケーションにおいてrubyを使用しないことを確認しておきます。
vagrantを入れるのでruby1.8.7より上のバージョンをrbenvで入れます。
(CentOS5系の場合。6系や他のディストリビューションでは別途ruby -vで確認してください)
実は、Chef-Clientを/opt/chefの下に入れた段階で以下のようにPATHを通しておけばrubyのバージョンは気にしなくてもよいかもしれません。
[shell]# curl -L https://www.opscode.com/chef/install.sh | bash # export PATH=$PATH:/opt/chef/embedded/bin/ # vi ~/.bashrc PATHをとおしておく[/shell] gemでchefを入れるのは古いやりかたみたいですね。
・最初にOracleVirtualBoxを導入
入れる理由はVagrant-awsでインスタンスの起動と管理を行うため。
[shell]cat /etc/redhat-release CentOS release 5.8 (Final) yum install libXmu libXt mesa-libGL qt qt-x11 SDL
wget http://download.virtualbox.org/virtualbox/4.2.12/VirtualBox-4.2-4.2.12_84980_el5-1.x86_64.rpm rpm -ivh VirtualBox-4.2-4.2.12_84980_el5-1.x86_64.rpm[/shell]
・ruby-1.8.7より新しいバージョンを導入(必要な場合)
[shell]yum -y install zlib-devel readline-devel openssl-devel yum install ruby ruby-devel rdoc irb rubygems yum install git –enablerepo=rpmforge[/shell]
...