jinja2模板的基本使用
1、首先将source文件中需要引用变量的内容改为{{ 变量名 }},如修改apache配置文件中的端口信息
1 | Listen {{ PORT }} |
01 | apache-service: |
02 | pkg.installed: |
03 | - name: httpd |
04 | file.managed: |
05 | - name: /etc/httpd/conf/httpd.conf |
06 | - source: salt://files/httpd.conf |
07 | - user: root |
08 | - group: root |
09 | - mode: 644 |
10 | - template: jinja #增加这行表示开启模板 |
11 | - defaults: #下面设定变量的值 |
12 | PORT: 8080 #之前定义的PORT变量值为8080 |
13 | - require: |
14 | - pkg: apache-service |
15 | service.running: |
16 | - name: httpd |
17 | - enable: True |
18 | - reload: True |
19 | - watch: |
20 | -file: apache-service |
3、执行salt '*' state.highstate,然后查看配置文件发生的变化,可以看到PORT这个变量的值变成了8080
jinja2模板的高级使用:
在基本使用中由于修改的是端口,端口信息一般是固定的,如果想要修改的信息是每个minion自身的IP就没办法设置一个通用的信息了,这个时候需要通过其他方法来获取minion相关信息,这里可以使用Grains、Pillar和执行模块三个方法来获取,下面用Grains举例设置IP的办法
01 | apache-service: |
02 | pkg.installed: |
03 | - name: httpd |
04 | file.managed: |
05 | - name: /etc/httpd/conf/httpd.conf |
06 | - source: salt://files/httpd.conf |
07 | - user: root |
08 | - group: root |
09 | - mode: 644 |
10 | - template: jinja #增加这行表示开启模板 |
11 | - defaults: #下面设定变量的值 |
12 | HOST: {{ grains['fqdn_ip4'][0] }} #[fqdn_ip4]代表的是IP,该信息需要先执行salt '*' grains.items查询,由于grains查询输出的是列表,会有多个值,需要加上[0]代表取第一个值 |
13 | PORT: 8080 #之前定义的PORT变量值为8080 |
14 | - require: |
15 | - pkg: apache-service |
16 | service.running: |
17 | - name: httpd |
18 | - enable: True |
19 | - reload: True |
20 | - watch: |
21 | -file: apache-service |
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2018 群英 版权所有 茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号-36 粤公网安备 44090202000006号 粤工商备P091701000595