Назад | Перейти на главную страницу

Убить марионеточный манифест

Скажем, у меня есть манифест, который имеет разные действия для каждой версии 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/.