-
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的变化