Обещания не запускаются в хостах - cfengine
Я новичок в cfengine. Я создал простое обещание, которое создает файл с именем test в /etc/test-cfengine
body common control
{
bundlesequence =>{"create_test_file"};
}
bundle agent create_test_file
{
files:
"/etc/test-cfengine/test-file"
edit_line => addline,
create => "true";
}
bundle edit_line addline
{
insert_lines: "Cfengine is running nicely.";
}
Когда я запускаю cf-agent -K (после редактирования файла promises.cf и включая обещание), я замечаю, что test-файл существует в /etc/test-cfengine. Но когда я иду к клиенту, я замечаю, что обещание существует, а тестовый файл - нет.
Таким образом, обещание распространяется на клиентов, но не запускается.
Как я могу быть уверен, что файл существует во всех клиентах?
2 ответа
Для устранения проблемы необходима дополнительная информация, поэтому вы можете проверить следующее в указанном порядке:
- На стороне центра, где вы редактировали
promises.cf
? Правильное место в/var/cfengine/masterfiles
не в/var/cfengine/inputs
где файл будет перезаписан в ближайшее время. - Вы подождали 5 минут, чтобы политика распространялась и запускалась? (это два отдельных шага)
- На стороне клиента проверьте
/var/cfengine/inputs/promises.cf
, Это так же, как в/var/cfengine/masterfiles/promises.cf
на хабе? Если это так, политика распространяется правильно. - Если все еще терпит неудачу, хвост
/var/log/messages
, Вы видите какие-либо сообщения от CFEngine каждые 5 минут? - Попробуйте запустить политику вручную:
cf-agent -KI
, Какой выход? Файл создан сейчас?
Это должно работать как на сервере политики (концентраторе), так и на всех подключенных клиентах, и файл должен создаваться везде. Причина, по которой вы не можете увидеть файл после того, как политика уже передана агенту, может быть связана с тем, что cf-agent на клиенте еще не запущен и, следовательно, файл не был создан.
Он должен быть создан после следующего запуска cf-agent, который должен произойти в течение 5 минут (конфигурация по умолчанию).
Если вы хотите, чтобы файл был создан ранее, вы можете просто запустить cf-agent -KI на клиенте, и вывод должен указать создание файла.
И объяснить, как это работает:
1. You modify policy on hub
2. Policy from hub masterfiles is copied to hub inputs directory (every 5 minutes cf-execd is running cf-agent -f update.cf to copy
the policy from mastefiles)
3. After policy is there within next 5 minutes cf-agent is running and executing policy
4. In the meantime clients are contacting hub to check if policy has changed
5. If so clients are downloading policy to inputs
6. After 5 minutes cf-agent is run and policy is executed
Надеюсь, это поможет понять проблему.