为了实施临时更改,在 puppet 中测试当前日期/时间的好方法是什么?
例如,我们刚刚遇到了 NTP 的安全问题,Debian 花了一段时间才发布更新。将 ntp 关闭一段时间似乎是最简单的。
service { 'ntp':
# remember to re-enable this after ntp is secured. CVE-XXXXXXXXXX
ensure => "stopped",
...
}
所以这需要记住回来并改变它。我想做的是使ensure
属性的值依赖于在运行时测试日期的选择器。
谁能提出一个很好的方法来做到这一点?
我可以想象通过 puppet 解析器提供一个函数来执行此操作,如果有人已经编写过它会很高兴,但如果您有办法在没有额外模块的情况下执行此操作,则可以加分。
service { 'ntp':
ensure => date_is_after("23 Dec 2014"): {
true => "running",
false => "stopped"
}
...
}
我还想到,基于 ntp 包的当前版本的测试会非常优雅,但我也不确定你会如何在 puppet 中做到这一点。