Puppetを使用する場合、使用するバージョンやインストール方法はどんな方法が良いかなと悩んだりしています。
RubyGemsを使ったインストール方法を覚えておけば、どんなディストリビューションでも使えて便利そうです。
ただ、個人的に一番使い慣れたディストリビューションはCentOSなので、rpmで管理したいという気持ちもあります。
そんな悩みを持ちつつ、とりあえずrpmを作成したので手順を残しておこうと思います。
参考にしたページは
こちらで、手順はほんとにそのままで申し訳ないくらいです。
- rpmbuildに必要なパッケージをインストールします
# yum -y groupinstall "Development Tools"
# yum -y groupinstall "Development Libraries"
その他puppetのインストールに必要なパッケージをインストールします
# cd /usr/local/src/
# wget http://ftp.iij.ad.jp/pub/linux/fedora/epel/5Server/i386/augeas-libs-0.7.4-1.el5.i386.rpm
# wget http://ftp.iij.ad.jp/pub/linux/fedora/epel/5Server/i386/ruby-augeas-0.3.0-1.el5.i386.rpm
# rpm -ivh ./augeas-libs-0.7.4-1.el5.i386.rpm ./ruby-augeas-0.3.0-1.el5.i386.rpm
/usr/src/redhat/SOURCESディレクトリに移動してfacterとpuppetのソースファイルをダウンロード
# cd /usr/src/redhat/SOURCES/
# wget http://puppetlabs.com/downloads/puppet/puppet-2.6.4.tar.gz
# wget http://puppetlabs.com/downloads/facter/facter-1.5.8.tar.gz
ダウンロードしたファイルを展開します
# tar zxvf ./puppet-2.6.4.tar.gz
# tar zxvf facter-1.5.8.tar.gz
必要なパッチがあるか確認します
# grep ^patch facter-1.5.8/conf/redhat/facter.spec
# grep ^patch puppet-2.6.4/conf/redhat/puppet.spec
patch -p1 < conf/redhat/rundir-perms.patch
パッチファイルを探してSOURCESディレクトリに移動させます
# find . -name rundir-perms.patch |grep redhat
./puppet-2.6.4/conf/redhat/rundir-perms.patch
# cp ./puppet-2.6.4/conf/redhat/rundir-perms.patch ./
バージョン情報を確認します
# grep ^Version ./facter-1.5.8/conf/redhat/facter.spec
Version: 1.5.5
# grep ^Version ./puppet-2.6.4/conf/redhat/puppet.spec
Version: 2.6.0
バージョン情報をダウンロードしたものと合わせて%changelogを編集します
# vi ./facter-1.5.8/conf/redhat/facter.spec
8 Version: 1.5.8
52 %changelog
53 * Mon Jan 17 2011 oko_chang <okochang@example.com> - 1.5.8-1
54 - Update to 1.5.8
# vi ./puppet-2.6.4/conf/redhat/puppet.spec
8 Version: 2.6.4
225 %changelog
226 * Mon Jan 17 2011 oko_chang <okochang@example.com> - 2.6.4-1
227 - Update to 2.6.4
編集したspecファイルをSPECSディレクトリにコピーします
# cp ./facter-1.5.8/conf/redhat/facter.spec ../SPECS/
# cp ./puppet-2.6.4/conf/redhat/puppet.spec ../SPECS/
# ls ../SPECS/
facter.spec puppet.spec
不要なディレクトリを削除します
# rm -rf ./facter-1.5.8
# rm -rf ./puppet-2.6.4
SPECSディレクトリに移動してfacterをbuildします
# cd ../SPECS/
# rpmbuild -bb --clean facter.spec
puppetのbuildに必要なのでbuildしたfacterをインストールします
# cd ../RPMS/i386/
# ls
facter-1.5.8-1.i386.rpm facter-debuginfo-1.5.8-1.i386.rpm
# rpm -ivh ./facter-1.5.8-1.i386.rpm ./facter-debuginfo-1.5.8-1.i386.rpm
SPECSディレクトリに移動してpuppetをインストールします
# cd /usr/src/redhat/SPECS/
# rpmbuild -bb --clean puppet.spec
puppetをインストールします
# cd ../RPMS/i386/
# rpm -ivh ./puppet-2.6.4-1.i386.rpm puppet-debuginfo-2.6.4-1.i386.rpm puppet-server-2.6.4-1.i386.rpm
以上でrpm作成は終わりです。
FacterもPuppetもすぐにbuildが終わる事にびっくり!
んー、でもやっぱり色々なディストリビューションで使える事を考えるとRubyGemsが便利そうだなー。