2011年1月19日水曜日

CentOS5.5でpuppet2.6.4のrpmを作成する

Puppetを使用する場合、使用するバージョンやインストール方法はどんな方法が良いかなと悩んだりしています。
RubyGemsを使ったインストール方法を覚えておけば、どんなディストリビューションでも使えて便利そうです。
ただ、個人的に一番使い慣れたディストリビューションはCentOSなので、rpmで管理したいという気持ちもあります。
そんな悩みを持ちつつ、とりあえずrpmを作成したので手順を残しておこうと思います。

参考にしたページはこちらで、手順はほんとにそのままで申し訳ないくらいです。

  • rpmbuildに必要なパッケージをインストールします
    1. # yum -y groupinstall "Development Tools"  
    2. # yum -y groupinstall "Development Libraries"  
  • その他puppetのインストールに必要なパッケージをインストールします
    1. # cd /usr/local/src/  
    2. # wget http://ftp.iij.ad.jp/pub/linux/fedora/epel/5Server/i386/augeas-libs-0.7.4-1.el5.i386.rpm  
    3. # wget http://ftp.iij.ad.jp/pub/linux/fedora/epel/5Server/i386/ruby-augeas-0.3.0-1.el5.i386.rpm  
    4. # 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のソースファイルをダウンロード
    1. # cd /usr/src/redhat/SOURCES/  
    2. # wget http://puppetlabs.com/downloads/puppet/puppet-2.6.4.tar.gz  
    3. # wget http://puppetlabs.com/downloads/facter/facter-1.5.8.tar.gz  
  • ダウンロードしたファイルを展開します
    1. # tar zxvf ./puppet-2.6.4.tar.gz  
    2. # tar zxvf facter-1.5.8.tar.gz  
  • 必要なパッチがあるか確認します
    1. # grep ^patch facter-1.5.8/conf/redhat/facter.spec  
    2. # grep ^patch puppet-2.6.4/conf/redhat/puppet.spec  
    3. patch -p1 < conf/redhat/rundir-perms.patch  
  • パッチファイルを探してSOURCESディレクトリに移動させます
    1. # find . -name rundir-perms.patch |grep redhat  
    2. ./puppet-2.6.4/conf/redhat/rundir-perms.patch  
    3. # cp ./puppet-2.6.4/conf/redhat/rundir-perms.patch ./  
  • バージョン情報を確認します
    1. # grep ^Version ./facter-1.5.8/conf/redhat/facter.spec  
    2. Version: 1.5.5  
    3. # grep ^Version ./puppet-2.6.4/conf/redhat/puppet.spec  
    4. Version:        2.6.0  
  • バージョン情報をダウンロードしたものと合わせて%changelogを編集します
    1. # vi ./facter-1.5.8/conf/redhat/facter.spec  
    2.       8 Version: 1.5.8  
    3.      52 %changelog  
    4.      53 * Mon Jan 17 2011 oko_chang <okochang@example.com> - 1.5.8-1  
    5.      54 - Update to 1.5.8  
    6.   
    7. # vi ./puppet-2.6.4/conf/redhat/puppet.spec  
    8.       8 Version:        2.6.4  
    9.     225 %changelog  
    10.     226 * Mon Jan 17 2011 oko_chang <okochang@example.com> - 2.6.4-1  
    11.     227 - Update to 2.6.4  
  • 編集したspecファイルをSPECSディレクトリにコピーします
    1. # cp ./facter-1.5.8/conf/redhat/facter.spec ../SPECS/  
    2. # cp ./puppet-2.6.4/conf/redhat/puppet.spec ../SPECS/  
    3. # ls ../SPECS/  
    4. facter.spec  puppet.spec  
  • 不要なディレクトリを削除します
    1. # rm -rf ./facter-1.5.8  
    2. # rm -rf ./puppet-2.6.4  
  • SPECSディレクトリに移動してfacterをbuildします
    1. # cd ../SPECS/  
    2. # rpmbuild -bb --clean facter.spec   
  • puppetのbuildに必要なのでbuildしたfacterをインストールします
    1. # cd ../RPMS/i386/  
    2. # ls  
    3. facter-1.5.8-1.i386.rpm  facter-debuginfo-1.5.8-1.i386.rpm  
    4. # rpm -ivh ./facter-1.5.8-1.i386.rpm ./facter-debuginfo-1.5.8-1.i386.rpm   
  • SPECSディレクトリに移動してpuppetをインストールします
    1. # cd /usr/src/redhat/SPECS/  
    2. # rpmbuild -bb --clean puppet.spec   
  • puppetをインストールします
    1. # cd ../RPMS/i386/  
    2. # 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が便利そうだなー。

2011年1月10日月曜日

2011年:明けましておめでとうございます

もう10日たってしまいましたが、明けましておめでとうございます。
今年もよろしくお願いします。

今回のエントリーは遅ればせながら初詣に行ってきた事についてです。
インフラエンジニアらしくITお守りを頂いてきましたよ!

神田明神到着!

IT情報安全祈願いただきました!

インフラエンジニアの方で行った事がない方は一度いかがでしょうか?