CentOS7ではPuppet2系が動かない
なぜなら標準で提供されてるパッケージの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