私はPuppetを使用してVMをセットアップすることがあります。これらのVMでLinuxMintを実行することがあります。使用したいPuppetモジュールがたくさんありますが、LSBの事実を確認すると、奇妙なLinuxMintバージョンから反動します。
たとえば、公式のPuppet Labs Javaモジュールを使用してJDKなどをインストールしています。params.ppファイルは次のようになります(多くを切り取っています)。
class Java::params {
case $::osfamily {
'RedHat': {...}
'Debian': {
case $::lsbdistcodename {
default: { fail("unsupported release ${::lsbdistcodename}") }
'lenny', 'squeeze', 'lucid', 'natty': {
$Java = {
'jdk' => {
'package' => 'openjdk-6-jdk'...
},
'jre' => {
'package' => 'openjdk-6-jre-headless...
},
}
}
'wheezy', 'jessie', 'precise','quantal','raring','saucy', 'trusty', 'utopic': {
...I could add 'rebecca' to the above list, and that would probably do it
$Java = {
'jdk' => {
'package' => 'openjdk-7-jdk'...
},
'jre' => {
'package' => 'openjdk-7-jre-headless'
},
'Oracle-jre' => {...},
'Oracle-jdk' => {...},
}
}
}
}
...
default: { fail("unsupported platform ${::osfamily}") }
}
mintインスタンスでエージェントを実行すると、最終的に次のようになります。
エラー:リモートサーバーからカタログを取得できませんでした:サーバー上のエラー400:サポートされていないリリースrebeccaノードsome.Host.comの/etc/puppet/modules/Java/manifests/params.pp:50
rebeccaは、現在扱っているLinux Mintのバージョンであり、UbuntuTrustyに対応しています。
しかし、各MintバージョンはUbuntuバージョンに基づいており、それは正常に機能するはずです。 (少なくとも試してみるには十分です。)モジュールや他のすべてのモジュールを変更するのではなく、同等のUbuntulsb情報を返すようにfacterに伝えたいと思います。それはコミュニティへのサービスかもしれませんが...
誰かがこの問題を解決しようとしましたか?アイデア?
このページ は、環境変数を設定することでFacterファクトをオーバーライドできることを意味しているようです。
# show the operating system we are running (retrieved from facter)
$ puppet -e 'notify { "We are running on $operatingsystem": }'
notice: We are running on Fedora
# override $operatingsystem for testing purposes
$ FACTER_operatingsystem=Debian puppet -e 'notify { "We are running on $operatingsystem": }'
notice: We are running on Debian
その場合、変数FACTER_lsbdistcodename=trusty
を使用して各rebecca
ホストを構築できますか?
私はこれをテストしていませんが、事実は単にノードによって報告されたものであり、そのため、簡単にオーバーライド/編集できるはずです...