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
我尝试创建以下状态,但我不知道如何编写 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