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

Марионетка - не останавливать выполнение манифеста в случае сбоя модуля

У меня возникли проблемы с пониманием одного из многих механизмов логики Puppet: сценария сбоя модуля.

У меня есть несколько модулей, выполняющих разные действия на наборе узлов различий, и я хочу реализовать следующий сценарий:

  1. развернуть все модули для указанных узлов
  2. если выполнение модуля завершается неудачно, вывести из строя только этот модуль, но продолжать применять другие модули

Я написал что-то подобное в своем тестовом модуле (yum):

init.pp :

class yum {
    case $operatingsystem { 
        /(RedHat|CentOS)/ : { include yum:config }
        default:            { include yum:fail }
    }
}

class yum::config {
    debug("[${fqdn}] Deploying yum.conf file")
    #DEPLOY YUM.CONF CODE
}

class yum:fail {
    fail("[${fqdn}] This module is only for RedHat or CentOS")
}

И в моем site.pp манифест:

node 'redhat', 'centos', 'debian' {
    include yum
    include motd
}

Проблема в том, что если operatingsystem case не удовлетворяется данным узлом (debian в этом случае) он выйдет из строя все последовательные модули (motd НЕ будет применяться).

Возникает вопрос: что я делаю не так в этом случае?

PS: Имейте в виду, что я все еще изучаю лучшие практики Puppet, и поэтому я не притворяюсь, что мой код безупречен.

Я такой глупый. Кажется, действительно, учитывая мою структуру модуля, мне просто нужно ничего не делать, когда мы находимся в дочернем классе yum::fail (может просто поставить info и / или debug сообщение). Не нужно явно отказываться от этого.