Puppetを使用する場合、使用するバージョンやインストール方法はどんな方法が良いかなと悩んだりしています。
RubyGemsを使ったインストール方法を覚えておけば、どんなディストリビューションでも使えて便利そうです。
ただ、個人的に一番使い慣れたディストリビューションはCentOSなので、rpmで管理したいという気持ちもあります。
そんな悩みを持ちつつ、とりあえずrpmを作成したので手順を残しておこうと思います。
参考にしたページは
こちらで、手順はほんとにそのままで申し訳ないくらいです。
- rpmbuildに必要なパッケージをインストールします
- # yum -y groupinstall "Development Tools"
- # yum -y groupinstall "Development Libraries"
# 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
# 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
# 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
# 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
# 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 ./
# 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
# 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
# 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
# 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
# rm -rf ./facter-1.5.8
# rm -rf ./puppet-2.6.4
SPECSディレクトリに移動してfacterをbuildします
- # cd ../SPECS/
- # rpmbuild -bb --clean facter.spec
# 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
# 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
# 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
# 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が便利そうだなー。