UNDERSTANDING JINJA
jinja是sls文件是默认的模板语言
JINJA IN STATES
在state文件被运行之前需要将文件中jinja模板语言部分处理掉,处理完之后再转化成YAML格式,最后变成python数据结构。
jinja模板语法通常被用于在state文件中使用控制结构,如if条件,for循环等,可以达到消除冗余数据的效果。
在sls文件中使用jinja模板
示例:
1 {% if grains['os'] != 'FreeBSD' %} 2 tcsh: 3 pkg: 4 - installed 5 {% endif %} 6 7 motd: 8 file.managed: 9 {% if grains['os'] == 'FreeBSD' %} 10 - name: /etc/motd 11 {% elif grains['os'] == 'Debian' %} 12 - name: /etc/motd.tail 13 {% endif %} 14 - source: salt://motd