Jinja加载工具为jinja模板提供了一个更强大的后端
以配置apache的IP和端口为例来学习jinja
方法1:
1.在install.sls中添加port:80
[root@server1 ~]# cd /srv/salt/apache/
[root@server1 apache]# vim install.sls
2.修改apache服务配置文件httpd.conf
[root@server1 apache]# cd files/
[root@server1 files]# vim httpd.conf
42行 Listen {{ port }}
3.重新推送
[root@server1 apache]# salt server2 state.sls apache.service
方法2:将端口和ip定义成变量的形式
1.在install.sls添加IP
[root@server1 apache]# vim install.sls
2.修改apache服务配置文件httpd.conf
[root@server1 apache]# cd files/
[root@server1 files]# ls
httpd.conf
[root@server1 files]# vim httpd.conf
42行 Listen {{ host }}:{{ port }}
3.重新推送
[root@server1 apache]# salt server2 state.sls apache.service
方法3:静态变量的方式
1.用grains工具提取server2端IP地址
[root@server1 files]# salt server2 grains.item ipv4
2.修改httpd.conf配置文件
[root@server1 files]# vim httpd.conf
Listen {{ grains['ipv4'][1] }}:{{ port }}
3.重新推送
[root@server1 files]# salt server2 state.sls apache.service
方法4:可以选择只修改/srv/salt/apache/install.sls而不修改httpd.conf配置文件
1.修改install.sls文件
[root@server1 apache]# vim install.sls
2.httpd.conf改回原来的
[root@server1 apache]# cd files/
[root@server1 files]# vim httpd.conf
Listen {{ host }}:{{ port }}
3.重新推送
[root@server1 files]# salt server2 state.sls apache.service
方法5:使用pillar
1.编辑文件:vim /srv/pillar/web/vars.sls
{% if grains['fqdn'] == 'server2' %}
webserver: httpd
state: master
ip: 172.25.13.2
port: 8080
{% elif grains['fqdn'] == 'server3' %}
webserver: nginx
state: backup
ip: 172.25.13.3
port: 80
{% endif %}
2.编辑install.sls文件
3.重新推送
salt server2 state.sls apache.service
4.在server2上查看端口和ip的变化