抑制特定的错误消息 / 在傀儡中警告?

是否有可能抑制

具体的

起始清单时错误消息 Puppet?

以下代码片段激活和启动 iptables, 如果有文件 / etc / sysconfig / iptables. 它可以很好地工作,但“检查规则文件 iptables» 生成我想要隐藏的错误消息。 我检查了 (v2.7) docs 资源类型参数 exec 而Googled,但不是幸运的。

cat init.pp
service { "iptables":
enable => true,
ensure => running,
require => Exec["Check for iptables rulesfile"];
}

exec { "Check for iptables rulesfile":
command => "/usr/bin/test -f /etc/sysconfig/iptables",
returns => "0";
}

puppet apply --debug init.pp
...
err: /Stage[main]//Exec[Check for iptables rulesfile]/returns: change from notrun to 0 failed: /usr/bin/test -f /etc/sysconfig/iptables returned 1 instead of one of [0] at init.pp:12
...
warning: /Stage[main]//Service[iptables]: Skipping because of failed dependencies

有什么想法吗?

P.S. 是的,我明白这是管理防火墙规则的错误方法 Puppet.
已邀请:

诸葛浮云

赞同来自:

我明白你想要这个服务 iptables 包括并仅在 / etc / sysconfig / iptables. 一个简单的选项将创建自定义出厂名称 iptables (或者你喜欢的任何东西) 并使用此逻辑值来决定服务块是否。 例如:

在您的模块中创建自己的事实 $ module_name / lib / facter:

 Facter.add("iptables") do
setcode do
if Facter::Util::Resolution.exec('test -f /etc/sysconfig/iptables') then
"true"
else
"false"
end
end
end

然后在您的服务块中存在类似的内容:

 if $::iptables == "true" {
service { "iptables":
enable => true,
ensure => running,
}
}

只有当此文件存在时,才会执行此服务单元。 我想你想要它。

裸奔

赞同来自:

Bosco提供了一个非常好的解决方案。

你的黑客也可以工作,尝试
http://docs.puppetlabs.com/ref ... level
闷闷不乐。

exec { "Check for iptables rulesfile":
command => "/usr/bin/test -f /etc/sysconfig/iptables",
loglevel => "debug",
returns => "0";
}

请注意服务资源

将要

抱怨不成功的依赖关系。

要回复问题请先登录注册