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作为一个独立的脚本运行,只是看到目录运行通知。
除了克雷格的出色答案外,您还需要:
包括mymodule :: scripts :: os_check
编辑:否则,你只是定义一个类,而不是实例化它。
尝试这个:
class mymodule::scripts::os_check { case $::operatingsystem { 'CentOS': { notify {'You are using CentOS': } } default: { notify {'You are using non-CentOS OS': } } } }
有几点,没有特别的顺序,在适当的地方用括号括起来:
operatingsystem事实应该通过使用顶层命名空间variables$::operatingsystem ( Puppet Lint ) notify语法是错误的,您应该实例化通知资源,而不是尝试将其作为函数调用( Puppet Type Reference )