Назад | Перейти на главную страницу

Использование CFEngine для копирования дерева каталогов, кроме определенных файлов

Я использую CFEngine для развертывания сайтов apache. Итак, у меня есть репозиторий, и мои агенты копируют из него файлы.

Проблема в том, что когда я редактирую свои файлы с помощью vim, он создает файлы подкачки. И они копируются на сервер, что плохо, потому что каждый раз, когда я запускаю свой редактор, все эти машины загружают файлы подкачки.

Большая проблема в том, что это вызывает перезапуск apache.

TL; DR: как мне сказать 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";
}   

Редактировать: Мой пост был недостаточно точным.

Я не уверен в конфигурации CFEngine - я с этим не работал. Вы можете обойти проблему, указав vim не создавать дополнительные файлы во время редактирования.

установить nobackup

установить сейчас

установить noswapfile

немного поздно, но если никто не дал на это ответа, я буду:

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" };
}