假设我有一个清单,它针对每个版本的 Debian 都有不同的操作
case $lsbdistcodename{
'squeeze':{//stuff}
'lenny' : {//stuff}
default : die
我希望清单抛出致命错误。我想问题是,我怎么死的(如果你愿意的话)?
Puppet 代理/主版本 0.24.6。
答案1
你可以使用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}") }
}
}
这会导致模块在未运行 Debian 或 Ubuntu 的 Puppet 节点上失败。
哦,拜托,看在上帝的份上,升级你的 Puppet 安装吧。0.24 版本太老了,我觉得它甚至不再受支持了。Puppetlabs 提供了最新的稳定软件包(参见 apt.puppetlabs.com),或者你可以使用来自http://backports-master.debian.org/。