maehachi08 Anything Blog

2012年10月31日
puppetマニフェストでセレクタを使う話

会社のとあるサーバを構築していて気付いたことやけど、CentOS5-x86_64のEPELレポジトリにあるmuninパッケージのバージョンが1.4.7から2.0.6に更新されてしまいました。んで、どうしても1.4.7でインストールしたい時の話。
でも、その”あるサーバ”だけを1.4.7にして他はその時の最新のバージョンで良い。ってな場合。

今まではこう書いていた。

  if $os == "CentOS5-x86_64" {
    package { 'munin-node':
       ensure => "1.4.7-5.el5";
    }
  } else {
    package { 'munin-node':
      ensure => installed;
    }
  }

っで、ここから本題。
セレクタを使えばもっと見易く書けるって話。

  package { 'munin-node':
    ensure => $os ? {
      'CentOS5-x86_64' => "1.4.7-5.el5",
      'default'        => "installed",
    }
  }

ちなみに、$osとは社独自に定義しているfacter関数なのでデフォでは無いので要注意!

ちなみに(2)、munin-1.4.7は以下ミラーサイトで入手しました。いつupdateされるか分からんので必要な人は早めに落として置くべし!!

wget http://download.neuroinf.jp/epel/5Server/x86_64/munin-1.4.7-5.el5.noarch.rpm
wget http://download.neuroinf.jp/epel/5Server/x86_64/munin-common-1.4.7-5.el5.noarch.rpm
wget http://download.neuroinf.jp/epel/5Server/x86_64/munin-node-1.4.7-5.el5.noarch.rpm