一. jinja语法简介
1.定义变量
{% set var = 'value' %}
2.引用变量
{{ VAR_NAME }}
3.if条件判断
{% if 条件 %}
语句块
{% elif 条件 %}
语句块
{% else %}
语句块
{% endif %}
二. 案例总结
案例1:
同步zabbix-agent的配置文件,根据主机名分配不同的zabbix-server
sls文件内容
zabbix_pkg:
pkg.installed:
- name: zabbix-agent
- refresh: True
zabbix_main_conf:
file.managed:
- name: /etc/zabbix/zabbix_agentd.conf
- source: salt://init_system/zabbix/zabbix_agentd.conf
- template: jinja
- require:
- pkg: zabbix_pkg
- file: zabbix_include_conf
jinja模板文件
{% if grains['fqdn'].startswith("test-aa-") %}
{% set server_hostname = 'Aserver.test.com' %}
{% else %}
{% set server_hostname = 'Bserver.test.com' %}
{% endif %}
Server={{ server_hostname }}
ServerActive={{ server_hostname }}