Salt Stack file.recurse 递归失败

Salt Stack file.recurse 递归失败

我在 salt 中创建了一个状态文件,用于将 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:

但是,当我将其作为高级状态的一部分运行时,出现以下错误。

----------
          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:

我花了太多时间研究这个问题。我无法在任何状态下使用递归函数,否则我会得到相同的结果。当你直接调用状态时,它会起作用,但不能作为高级状态的一部分。

任何人提供的任何帮助都将非常有帮助。

谢谢,

答案1

files/cmk_checks需要存在于所有环境中,并且主服务器上的路径将特定于环境。

您的运行很可能salt-call在与 highstate 不同的环境中执行状态。您应该salt-call state.sls使用saltenv=…争论。

相关内容