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

CFEngine v2 не «передает» классы клиенту

Доброе утро,

У меня очень странная проблема с CFEngine 2.1.22.

У меня есть две группы в cf.groups, как показано ниже

 # devservers that need default sudoers
    group_default_sudoers = ( dev4_company_local 
                          dev5_company_local
                          dev6_company_local
                          dev7_company_local
                          dev8_company_local )



 # devservers that need db modified sudoers
    group_dbmod_sudoers = ( dev16_company_local )

А это необходимые строчки из cf.main

actionsequence          = ( copy packages editfiles processes shellcommands tidy )

copy::
     group_default_sudoers::
    ${include_dir}/default_sudoers
            dest=/etc/sudoers
            owner=root
            group=root
            mode=440
            type=checksum
            backup=false

    group_dbmod_sudoers::
    ${include_dir}/dbmod_sudoers
            dest=/etc/sudoers
            owner=root
            group=root
            mode=440
            type=checksum
            backup=false

Проблема в том, что dev4,5,6 и 7 мгновенно получают новый файл, когда я запускаю cfagent на клиентах, а dev8 и dev16 - нет.

И мне удалось сузить проблему до «Определенных классов» с помощью этой команды.

cfagent -pv|grep Classes

И на всех серверах, кроме dev8 и dev16, появляются группы / классы (group_default_sudoers и group_dbmod_sudoers).

У кого-нибудь есть мысли по этому поводу? Я не могу понять, как определить классы, а конфигурация идентична.

Любые подсказки и подсказки будут очень благодарны.

С уважением

Поняв, что ошибка заключается в том, что cf.main и cf.groups не копируются, я быстро понял, что что-то не так с передачей файлов, и после сравнения update.conf я сразу обнаружил ошибку, я изменил update.conf на dev8 и dev16 и все заработало моментально.

Это то, что я думаю, было ошибкой, этого не было на неисправных клиентах.

copy:
    $(master_cfinput)/ dest=$(local_cfinput)
    r=inf mode=600
    trustkey=true
    type=checksum
    ignore=cfservd.conf
    ignore=cfrun.hosts
    server=$(policyhost)

И в этой папке были два файла, вуаля!