-
jinja模块
有多种方式,以apache的ip和端口为例 -
第一种:直接在apache下的install.sls中修改,加入port:80即可
-
第二种
-
将端口定义成变量的形式:
port:{{ port}}
-
在httpd.conf中也要写入相应的变量
-
推送
-
第三种
-
将变量定义到当前目录下的lib.sls中:
{% set host='172.25.58.2' %}
-
在install.sls中删除host指令,在httpd.conf中同样要定义变量,并写入
{% from 'apache/lib.sls' import test with context%}
-
推送
-
第四种
-
用静态变量的形式:在install.sls中定义变量:
host:grains['ipv4'][1]
-
同样,在httpd.conf中也要写入相应的变量{{grains[‘ipv4’]}}
-
以pillar的形式
-
编辑文件:
vim /srv/pillar/web/vars.sls {% if grains['fqdn'] == 'server3' %} webserver: httpd state: master ip: 172.25.60.3 port: 8080 {% elif grains['fqdn'] == 'server4' %} webserver: nginx state: backup ip: 172.25.60.4 port: 80 {% endif %}
- 编辑install.sls文件
httpd-install: pkg.installed: - pkgs: - httpd: - php: - httpd-tools file.managed: - name: /etc/httpd/conf/httpd.conf - source: salt://apache/files/httpd.conf - user: root - group: root - mode: 644 - template: jinja - context: port: {{pillar['port']}} host: {{pillar['ip']}}
- 测试:
salt server3 state.sls apache.service
- 在/srv/pillar/web/vars.sls中修改端口和ip,在server3上可以查看端口和ip的变化
文章来源: https://blog.csdn.net/qq_42311209/article/details/91803683