Я использую Марионетку для установки VMs время от времени. Иногда я запускаю Linux Mint на этих VMs. У меня есть много Марионеточных модулей, которые мне нравится использовать, но когда они проверяют факты LSB, они отступают от странной версии Linux Mint.
Например, я использую официальный Марионеточный модуль Java Labs для установки 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}") }
}
когда я выполняю агент на экземпляре Монетного двора, я в конечном счете добираюсь:
Ошибка: не Мог получить каталог от удаленного сервера: Ошибка 400 на СЕРВЕРЕ: неподдерживаемый выпуск rebecca в/etc/puppet/modules/java/manifests/params.pp:50 на узле some.host.com
rebecca является версией Linux Mint, с которым я имею дело в данный момент, который соответствует Надежному человеку Ubuntu.
Но каждая версия Монетного двора основана на версии Ubuntu, и это должно хорошо работать. (Достаточно прекрасный для попытки, по крайней мере.) я действительно хотел бы сказать фактору возвращать эквивалентную Ubuntu lsb информация, вместо того, чтобы изменять модуль и все другие модули как он. Хотя это могло бы быть сервисом для сообщества...
Кто-то попытался решить эту проблему? Идеи?
Эта страница , кажется, подразумевает, что вы можете переопределить факты 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
В этом случае вы сможете собрать каждую rebecca
хост с переменной FACTER_lsbdistcodename = trusty
?
Я не тестировал это, но факты - это просто вещи, сообщаемые узлом, и поэтому их можно легко переопределить / редактировать ...