class mymodule::scripts::os_check {
case $operatingsystem {
/(?i-mx:centos)/: { notify("You are using CentOS")}
/(?i-mx:.*)/: { notify("You are using non-CentOS OS") }
}
}
Почему это выполняется без ошибок, но не отображает ни одного уведомления (на сервере, где факт операционной системы == CentOS)?
Я запускаю это как автономный скрипт с использованием puppet apply os-check.pp и просто вижу уведомление о запуске каталога.
Попробуй это:
class mymodule::scripts::os_check {
case $::operatingsystem {
'CentOS': {
notify {'You are using CentOS': }
}
default: {
notify {'You are using non-CentOS OS': }
}
}
}
Несколько пунктов, в произвольном порядке, со ссылками в скобках, где это необходимо:
operatingsystem
факт должен быть сопоставлен с помощью переменной пространства имен верхнего уровня $::operatingsystem
(Кукольный пух)notify
синтаксис неверен, вы должны создать экземпляр уведомления ресурс вместо того, чтобы пытаться вызвать его как функцию (Ссылка на тип марионетки)В дополнение к отличному ответу Крейга вам необходимо:
включить mymodule :: scripts :: os_check
Изменить: в противном случае вы просто определяете класс, а не создаете его.