我想知道,在紧急情况下,什么是最好的、最快的、最简单的方法来暂时停止单个cfengine客户端执行某项承诺,而不需要更改cfengine服务器(hub)上的任何内容。
到目前为止,我的解决方案是编辑/var/cfengine/inputs/promises.cf并注释掉我想要停止的服务(在本例中,我希望cfengine停止重新启动mysqld)。然后我重新启动了cfengine。我不确定这是否是最好的方法(或者即使它不会破坏某些东西)。到目前为止,它似乎还没有开始任何着火,但我只是想知道是否有一个更“接受”的方式。
发布于 2015-04-29 08:52:49
我相信您所使用的方法是最好的方法,虽然重新启动CFEngine应该是不必要的。但请注意,这只是一种临时措施。一旦策略服务器上的某些策略更改,它将触发策略的重新下载,这将覆盖您在/var/cfengine/inputs中所做的更改。
所以要确保你在两边都做了些改变。在/var/cfengine/inputs中对客户端进行更改会使更改立即进行,而在/var/cfengine/masterfiles中的服务器上使更改永久化。这是我自己用过很多次的方法。
发布于 2015-04-29 11:14:17
下一次cf代理运行update.cf (从策略服务器获取新的主文件并重写您的编辑)时,对输入/的任何更改都将被践踏。所以我想,你的快速攻击很可能只是暂时的。这也意味着(除非我弄错了,我很可能是这样),任何非瞬态修复都必然涉及其服务器(集线器)上的编辑策略。
然后,对(general)策略的编辑将只在特定主机上对某个类集的否定进行相关的承诺,例如,如果主机为10.20.30.40,则向允诺添加一个ifvarclass => "!ipv4_10_20_30_40“属性。(请注意,您也可以对一个类::条件做同样的承诺,但这可能会影响以后的承诺或与任何已经适用于它的类::条件纠缠在一起。)
https://serverfault.com/questions/685914
复制相似问题