Я создал файл состояния в соли, чтобы скопировать список сценариев check_mk Nagios на удаленный сервер. Ниже приведен фрагмент файла состояния.
check_mk_defined_checks:
file.recurse:
- name: /usr/lib/check_mk_agent/local
- source: salt://{{ slspath }}/files/cmk_checks
- user: nagios
- group: users
- file_mode: 754
- dir_mode: 755
- require:
- check_mk_agent_installed
Самое смешное, когда я запускаю состояние sls напрямую, все работает. Увидеть ниже.
salt-call state.sls dev.roles.srvr.system_conf.check_mk
----------
ID: check_mk_defined_checks
Function: file.recurse
Name: /usr/lib/check_mk_agent/local
Result: True
Comment: The directory /usr/lib/check_mk_agent/local is in the correct state
Started: 20:54:29.105625
Duration: 1475.026 ms
Changes:
Однако, когда я запускаю его отдельно от highstate, я получаю следующую ошибку.
----------
ID: check_mk_defined_checks
Function: file.recurse
Name: /usr/lib/check_mk_agent/local
Result: False
Comment: Recurse failed: none of the specified sources were found
Started: 20:45:19.369238
Duration: 917.113 ms
Changes:
Я потратил много времени, работая над этим. Я не могу использовать рекурсивную функцию ни в каком состоянии, иначе я получу те же результаты. Это работает, когда вы вызываете состояние напрямую, но не отдельно от высокого состояния.
Любая помощь, которую может предоставить кто угодно, была бы замечательной.
Спасибо,
Источник files/cmk_checks
должен присутствовать во всех средах, и пути на главном сервере будут зависеть от среды.
Скорее всего ваш salt-call
run выполняет состояние в среде, отличной от вашей highstate. Ты должен бежать salt-call state.sls
с участием saltenv=…
аргумент.