1

我刚开始使用 CFEngine。我有 1 个策略服务器和 2 个客户端(Ubuntu 14.04 Desktop、Ubuntu 12.04 Desktop)。

首先在安装了 CFEngine 代理的 Ubuntu 14.04 桌面上创建本地策略。

此策略删除现有的“ telnet ”客户端。

当地政策运作良好。所以我想在我的策略服务器上使用该策略,然后在 5 分钟后将其推送给客户端。这不起作用。

这些是我在策略服务器上执行的步骤: Step1:在 /var/cfengine/masterfiles 目录中创建文件 remove_packages.cf

bundle agent remove_packages
{
  methods:
      "telnet"  usebundle => package_absent("telnet");
}

Step2:在/var/cfengine/masterfiles目录下vi promises.cf并添加

body common control

{

      bundlesequence => {
           remove_packages,

Step3:在/var/cfengine/masterfiles目录下vi promises.cf并添加

  inputs => {
            # JF 15/08/2014 remove telnet package
                  "remove_packages.cf",

      };

Step4:检查错误

root@ubuntu:/var/cfengine/masterfiles# cf-promises ./promises.cf 

步骤 5:等待 5 分钟,直到它复制到客户端。

客户端什么都没有发生...正如您所见,它仍然存在:

root@ubu14client:~# which telnet
/usr/bin/telnet

有人可以解释一下为什么它不起作用吗?

4

2 回答 2

1

我在另一篇文章中发现它与“时钟偏差”有关。

我已经为我的服务器设置了正确的时区,并使用 ubuntu 时间服务器进行了更新。从那时起,一切都很顺利。

https://serverfault.com/questions/387675/cfengine-3-policies-slow-update-to-clients

于 2014-08-16T10:10:40.187 回答
0

我赞成您的问题,只是为了包含您所做的仔细的逐步顺序。我想我会提到您可以采取的其余调试步骤,这可能比仅仅在谷歌上搜索更容易(和更直接)向您展示出了什么问题:

第 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.

详细的输出可能非常冗长,但学习筛选它是件好事。通过在详细模式下运行,您几乎总能找到诊断/调试问题所需的一切。

于 2016-02-09T08:06:57.787 回答