CentOS5.5でpuppet2.6.4のrpmを作成する
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 ../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が便利そうだなー。