1

我正在尝试使用 cf-engine 将文件从策略中心复制到主机。在主机上创建空文件。怎么写内容?策略中心和主机是否应该将文件放在同一位置?

4

1 回答 1

3

为了从 cfengine 服务器复制文件,需要有一个允许将文件共享到远程代理的 acl。您可以在 Masterfiles Policy Frameworks捆绑服务器 access_rules中看到一些访问承诺示例。

举个简单的例子,假设您希望所有主机/tmp在策略集线器上与所有其他主机共享。

bundle server kiran_access_rules
{
  access:
    # First you restrict promises to the proper context
    # by using a class guard. Here we allow only hosts
    # with the class am_policy_hub or policy_server to
    # share /tmp

    am_policy_hub|policy_server::

      "/tmp"
        admit => { "0.0.0.0/0" }, 
        comment => "Probably you would reference a list in 
                    the admit attribute like @(def.acl).
                    That's the variable named acl in the
                    bundle named def.";
}

然后,您将分别拥有一个承诺复制文件的捆绑包。

bundle agent kirians_bundle
{
  files:
    "/tmp/myfile"
      copy_from => remote_dcp("/tmp/serverfile",$(sys.policy_hub)),
      create => "true";
}

现在,您在上面的 copy_from 承诺中看到的实际上是将多个承诺压缩为一个。您承诺该文件存在,并且您承诺该文件应与策略中心共享的文件具有相同的内容。随着 cfengine 的融合,它能够修复部分但不是全部的复合承诺。我相信这就是你最终得到一个空文件的原因。

此外,询问 cfengine 问题的最佳地点是cfengine 帮助列表cfengine IRC 频道

于 2015-08-05T13:42:54.197 回答