使用 CFEngine 复制目录树(某些文件除外)

使用 CFEngine 复制目录树(某些文件除外)

我正在使用 CFEngine 部署 Apache 站点。因此,我设置了一个存储库,并且我的代理正在从中复制文件。

问题是当我使用 vim 编辑文件时,它会创建交换文件。这些文件会被复制到服务器,这很糟糕,因为每次我启动编辑器时,所有这些机器都会下载交换文件。

大问题这会触发 apache 的重新启动。

TLDR:我如何告诉 CFEngine 忽略匹配的文件\..*\.swp

以下是我现在所拥有的:

files:
        "/etc/apache2/sites-available/"
                handle => "apache-sites-available",
                depends_on => { "apacheinstall" },
                create => "true",
                copy_from => secure_cp("/srv/repos/apache2/conf/sites-available/","$(sys.policy_hub)"),
                depth_search => recurse("inf"),
                classes => satisfied("apachemustrestart");
        "/etc/apache2/sites-enabled/"
                handle => "apache-sites-enabled",
                depends_on => { "apacheinstall", "apache-sites-available" },
                create => "true",
                copy_from => secure_cp("/srv/repos/apache2/conf/sites-enabled/","$(sys.policy_hub)"),
                depth_search => recurse("inf"),
                classes => satisfied("apachemustrestart");
                # promise_repaired => { "apachemustrestart" };

services:
        "apache2"
                handle => "apacheenable",
                depends_on => { "apache-sites-enabled" },
                service_policy => "start";

        apachemustrestart::
        "apache2" 
                service_policy => "restart";

这是satisfied课程

body classes satisfied(x)
{   
      promise_repaired => { "$(x)" };
      # persist_time => "0";
}   

编辑:我的帖子不够精确。

答案1

我不确定 CFEngine 配置 - 我还没有用过它。您可以通过告诉 vim 在编辑期间不要创建其他文件来解决您的问题。

设置不备份

设置不写备份

设置noswap文件

答案2

有点晚了,但如果没有人回答这个问题,我会:

bundle agent filecache {
    files:
        myclass::
          "/etc/apache2/sites-available/"
            copy_from   => mycopy("/your_path","$(sys.policy_hub)"),
            depth_search => recursive_exc_swp;
}

body copy_from mycopy(from,server) {
      source      => "$(from)";
      servers     => { "$(server)" };
      purge       => "true";
      stealth     => "true";
      preserve    => "true";
}

body depth_search recursive_exc_swp {
    depth => "inf";
    exclude_dirs => { "\.swp" };
}

相关内容