Salt state 检查 salt master 上的文件是否存在

Salt state with check if file on salt master exists

我尝试创建以下状态,但我不知道如何编写 if 子句?也许有人可以帮助我。我试图完成的是,如果存在具有目标主机名的文件,则 salt 采用配置文件,否则采用默认配置。

示例:

{% if ??? test -f ??? salt://ntpd/ntp.conf_{{ salt['grains.get']('host') }} %}
ntpd-config:
  file.managed:
    - name: /etc/ntp.conf
    - source: salt://ntpd/ntp.conf_{{ salt['grains.get']('host') }}
    - user: root
    - group: root
    - file_mode: 644
    - require:
      - ntpd-pkgs
{% else %}
ntpd-config:
  file.managed:
    - name: /etc/ntp.conf
    - source: salt://ntpd/ntp.conf
    - user: root
    - group: root
    - file_mode: 644
    - require:
      - ntpd-pkgs
{% endif %}

希望有人能帮助我。

提前致谢!

马蒂亚斯

我刚刚自己找到了答案。

在文档中发现我可以定义多个源。如果之前的 none 个存在,最后一个就是默认值。

这现在有效:

ntpd-config:
  file.managed:
    - name: /etc/ntp.conf
    - source:
        - salt://ntpd/ntp.conf_{{ salt['grains.get']('host') }}
        - salt://ntpd/ntp.conf