我刚开始使用CFEngine。我有1个策略服务器和2个客户端(Ubuntu 14.04桌面,Ubuntu 12.04桌面)。
开始在安装了CFEngine代理的Ubuntu 14.04桌面上创建本地策略。
此政策会删除现有的" telnet "客户。
当地政策运作良好。所以我想在我的策略服务器上使用该策略,然后在5分钟后将其推送给客户端。这不起作用。
以下是我在策略服务器上执行的步骤: Step1:在/ var / cfengine / masterfiles目录中创建文件remove_packages.cf
bundle agent remove_packages
{
methods:
"telnet" usebundle => package_absent("telnet");
}
步骤2: vi promises.cf在/ var / cfengine / masterfiles目录中并添加
body common control
{
bundlesequence => {
remove_packages,
步骤3:在/ var / cfengine / masterfiles目录中的vi promises.cf并添加
inputs => {
# JF 15/08/2014 remove telnet package
"remove_packages.cf",
};
第4步:检查错误
root@ubuntu:/var/cfengine/masterfiles# cf-promises ./promises.cf
Step5:等待5分钟,直到它复制到客户端..
客户端没有任何反应......正如您所见,它仍然存在:
root@ubu14client:~# which telnet
/usr/bin/telnet
有人可以解释一下为什么它不起作用吗?
答案 0 :(得分:1)
我在另一篇文章中发现它与“时钟偏差”有关。
我为服务器设置了正确的时区,并使用ubuntu时间服务器进行更新。从那以后一切都很顺利。
https://serverfault.com/questions/387675/cfengine-3-policies-slow-update-to-clients
答案 1 :(得分:0)
我赞成你的问题只是为了包含你所做的一步一步的细致。我想我会提到你可能已经采取的剩余调试步骤,这可能比仅仅使用Google搜索更容易(更直接)地向您显示错误:
步骤6:在引导主机上运行更新策略以获取更改的策略文件。
cf-agent -f update.cf
如果您愿意,可以在详细模式下运行(颜色为便于阅读):
cf-agent -f update.cf -v -C
如果更新策略只是运行,您可能需要使用-K
覆盖时间锁:
cf-agent -f update.cf -v -C -K
第7步:在引导主机上以详细模式运行代理(只是默认的promises.cf而不是更新策略)
cf-agent ## or...
cf-agent -IC ## for "Inform" mode, with color output, or...
cf-agent -C -v ## verbose mode, color output, or...
cf-agent -C -v -K ## Evaluate all promises even if agent just ran.
详细输出可能非常详细,但学会筛选它是很好的。通过在详细模式下运行,您几乎总能找到诊断/调试问题所需的一切。