У меня возникли проблемы с пониманием одного из многих механизмов логики Puppet: сценария сбоя модуля.
У меня есть несколько модулей, выполняющих разные действия на наборе узлов различий, и я хочу реализовать следующий сценарий:
Я написал что-то подобное в своем тестовом модуле (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
сообщение). Не нужно явно отказываться от этого.