Скажем, у меня есть манифест, который имеет разные действия для каждой версии Debian.
case $lsbdistcodename{
'squeeze':{//stuff}
'lenny' : {//stuff}
default : die
Я хочу, чтобы манифест выдал фатальную ошибку. Думаю, вопрос в том, как мне умереть (если ты умрешь)?
Puppet agent / master версия 0.24.6.
Вы можете использовать fail
функция для этого. Обычно я делаю что-то вроде этого:
class postfix::params {
case $::operatingsystem {
Debian, Ubuntu: {
$postfix_package_name = 'postfix'
$postfix_postmap_command = '/usr/sbin/postmap'
$postfix_service_name = 'postfix'
}
default: { fail("${::hostname}: Module ${::module_name} does not support operatingsystem ${::operatingsystem}") }
}
}
Это приводит к сбою модуля на узлах Puppet, на которых не запущены Debian или Ubuntu.
О, и, пожалуйста, из любви ко всему доброму и святому обновите свою установку Puppet. 0.24 - это устаревшая версия, и я не думаю, что она вообще поддерживается. Puppetlabs предоставляет обновленные стабильные пакеты (см. Apt.puppetlabs.com), или вы можете использовать пакеты из http://backports-master.debian.org/.