Rubyでサーバ設定を自動化! Chef Soloを試そう!第0回

Ruby担当としては、この最初の連載のテーマを何にするか考えていたのですが、他のメンバーがクラウド活用を中心にされるという事なので、IaaS/VPSを利用する際に、自分の必要とする環境を構築するのに便利なツール “Chef” を自分の勉強もかねて紹介してみようと思い立ちました。

“Chef” はRubyで作られたオープンソースの設定管理ツールで、Linuxなどのパッケージのインストールや設定ファイルによる構成などを自動化することができます。本来はクラウドでたくさんのサーバーを一括設定したりするのが目的のため、設定を管理するサーバーと、そこにぶら下がるサーバー(クライアント)で構成されるのですが、ここはまず利用が簡単なスタンドアロン版の “Chef Solo” を使ってみることにします。

“Chef” はRubyで書かれたツールのため、使うにはRubyをインストールする必要があります。今回は、OSとして新潟オープンソース協会のメンバーがよく使うCentOSを使う事にしましたが、一般的にLinuxのディストリビューションの一部として配布されているRubyはバージョンが古い事が多く、とくにRedHat系は古めです。また、これはRubyの開発標準OSがDebianであることも関係していると思うのですが、RedHat系のディストリビューションでは、ソースからのコンパイルもDebianに比べて少々面倒です。

そこで、今回は連載0回と称して、CentOS 6.2にRubyをソースコンパイルでインストールする手順を紹介します。下記のシェルスクリプトをルート権限で実行します。

#!/bin/bash
# install packages needed to compile ruby
yum -y install make gcc zlib-devel openssl-devel \
readline-devel gdbm-devel bison \
libffi-devel
# you should register EPEL repository to install libyaml
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
yum -y install libyaml-devel
cd /tmp
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz
tar xvzf ruby-1.9.3-p194.tar.gz
cd ruby-1.9.3-p194
./configure --prefix=/usr/local
make
make install

なお、CentOS 6.2の環境でsudoすると、PATHに/usr/local/binが含まれないようなので、

export PATH=/usr/local/bin:$PATH

する必要があるようです。

[6/30 追記]

上記のファイルをgistに登録しました。

https://gist.github.com/3023767

root権限で下記のコマンドを実行するとコンパイルできます。(表示がうまくないようですが、1行コマンドとして実行します)


curl -L
https://gist.github.com/raw/3023767/3d2d381eb69e16ba7ca0e249ce877ee989fbec5b/compile_ruby_on_centos.sh | bash