CentOS7ではPuppet2系が動かない

2014-11-12

なぜなら標準で提供されてるパッケージのRubyが2.0以上になっているため。CentOS7はPuppetは3系しか動作しない。

以下、標準・Puppetlabsリポジトリを使ったパッケージによるインストールした場合についてです、gemの場合とかは知らない。色々ごちゃごちゃといじっていたので他のCentOSのバージョンとの整理も兼ねて。

CentOS5, CentOS6はPuppetlabsのyumリポジトリを利用することでPuppet 2系も3系も動く。ただしCentOS5の場合はディストリ標準パッケージのRubyが1.8.5の為、PuppetlabsのdependenciesによってRubyが1.8.7にアップグレードされることに注意。

つまり既存にCentOS5,6混在の環境があって、新たにCentOS7を追加しようとした場合は

  • 早々に既存マニフェストをPuppet 3.X readyにマイグレーションして
  • 既存環境のPuppetも3.Xにアップグレード

していった方が良い。2.Xのサポートもいつまで続くか分からないし。

既存環境にCentOS4があった場合は…サポートも切れてるし知らない子ですね…

マニフェストの互換性は0.2Xから2.6はほぼ問題無いけれども(2.7も大丈夫なはず)、2.Xから3.Xはちょこちょこエラーになる部分もあるんで頑張って直す。

Release Noteをみて変更点だけ直せば大概OKだけれど、他ハマりどころとしては、Puppetと同じタイミングでバージョンアップされるFacter 2.X でObsoluteな記載方法がある為、自作facter変数を修正しないといけないかもしれないというところ。

Facter.add(:servertype) do
    setcode do
 -    Facter.hostname.gsub(/\d+$/ , "")
 +    Facter.value(:hostname).gsub(/\d+$/ , "")
    end
  end

Shinya Tsunematsu

a Software Engineer loves tech, curry, music, fitness.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.