一. 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: Truezabbix_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 }}