SetupRemedie

overlast さんのこれから15分で Remedie を始めるための資料 に触発されて書いてみました。こっちは CPAN モジュールをインストールする時間も入れて15分。ただし限定された環境のみ。

Remedie 用に CPAN モジュールの RPM パッケージ作ったので、これプラス Puppet を利用します。ただし、RPM パッケージを CentOS 5 x86_64 でビルドしてるので、この環境限定。SRPM はあるので、他の環境の方はこいつをビルドして使ってください。

まずは Puppet をインストールするための yum リポジトリ設定。以下の内容で /etc/yum.repos.d/dlutter.repo を作成。

[dlutter]
name=lutter
baseurl=http://people.redhat.com/dlutter/yum/rhel/$releasever/$basearch/
enabled=1
gpgcheck=0

Puppet のインストール。

# yum -y install puppet-server

Puppet で署名するのはだるいので、以下の内容で /etc/puppet/autosign.conf を作成。

*

/etc/puppet/manifests ディレクトリを作成。

# mkdir /etc/puppet/manifests

以下の内容の /etc/puppet/manifests/site.pp を作成。

node default {

  yumrepo {
    'mizzy':
      baseurl  => 'http://svn.mizzy.org/public/yum/RPMS/centos/$releasever/$basearch/',
      enabled  => 1,
      gpgcheck => 0;
    'dag':
      baseurl  => 'http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag/',
      enabled  => 1,
      gpgcheck => 0;
    'updates':
      exclude => 'perl';
    'extras':
      exclude => 'perl';
  }

  Package {
    require => [ Yumrepo['mizzy'], Yumrepo['dag'], Yumrepo['updates'], Yumrepo[extras] ],
  }  

  package {
    'git':
      ensure => present;
    'perl':
      ensure => '5.8.8-15.1';
    'perl-Moose':
      ensure => present;
    'perl-Class-C3':
      ensure => present;
    'perl-Sub-Name':
      ensure => present;
    'perl-Devel-GlobalDestruction':
      ensure => present;
    'perl-Rose-DB':
      ensure => present;
    'perl-Rose-DB-Object':
      ensure => present;
    'perl-DateTime-TimeZone':
      ensure => '0.8301-8';
    'perl-MooseX-Types-Path-Class':
      ensure => present;
    'perl-DBD-SQLite':
      ensure => present;
    'perl-FindBin-libs':
      ensure => present;
    'perl-HTTP-Engine':
      ensure => present;
    'perl-MIME-Types':
      ensure => present;
    'perl-Path-Class-URI':
      ensure => present;
    'perl-String-CamelCase':
      ensure => present;
    'perl-Log-Dispatch':
      ensure => present;
    'perl-JSON-XS':
      ensure => present;
    'perl-MooseX-Getopt':
      ensure => present;
    'perl-MooseX-ConfigFromFile':
      ensure => present;
    'perl-File-Find-Rule':
      ensure => present;
    'perl-UNIVERSAL-require':
      ensure => present;
    'perl-Class-Accessor':
      ensure => present;
    'perl-DateTime-Format-Strptime':
      ensure => present;
    'perl-Feed-Find':
      ensure => present;
    'perl-Class-ErrorHandler':
      ensure => present;
    'perl-XML-Atom':
      ensure => present;
    'perl-XML-XPath':
      ensure => present;
    'perl-XML-Feed':
      ensure => present;
    'perl-Template-Toolkit':
      ensure => present;
    'perl-DateTime-Format-ISO8601':
      ensure => present;
    'perl-MooseX-ClassAttribute':
      ensure => present;
    'perl-XML-OPML-LibXML':
      ensure => present;
    'perl-File-Find-Rule-Filesys-Virtual':
      ensure => present;
    'perl-HTTP-Response-Encoding':
      ensure => present;
    'perl-HTML-ResolveLink':
      ensure => present;
    'perl-HTML-Selector-XPath':
      ensure => present;
    'perl-HTML-TreeBuilder-XPath':
      ensure => present;
    'perl-YAML':
      ensure => present;
    'perl-YAML-Syck':
      ensure => present;
    'perl-HTML-Scrubber':
      ensure => present;
    'perl-Image-Info':
      ensure => present;
    'perl-Text-Tags':
      ensure => present;
    'perl-XML-RSS-LibXML':
      ensure => present;
    'perl-Web-Scraper':
      ensure => present;
  }

}

puppetmasterd を起動。

# puppetmasterd --verbose --no-daemonize

puppetd を起動して、マニフェストを適用。注意点としては、localhost とかではなく、きちんと FQDN で指定すること。(puppetmasterd 初回起動時に自動作成される証明書中の CN と --server で指定するサーバ名が一致してないと怒られる。)

# puppetd --server host.example.org --verbose --no-daemonize

このままログを見ながらしばらく待つ。完了したら Remedie を github.com から取得して起動。

# git clone git://github.com/miyagawa/remedie.git
# cd remedie
# perl -Ilib -MRemedie::DB::Schema -e 'Remedie::DB::Schema->install'
# ./bin/remedie-server.pl

自分でやったら10分ぐらいで終わった。