SaltStack基础 - 06Jinja模板
一、 定义http配置文件
1.1 使用pillar定义
### 在pillar中,定义host和port
[root@cl-server pillar]# cat web/install.sls
{% if grains['fqdn'] == 'cl-node01' %}
webserver: httpd
host: 192.168.234.11
port: 9090
{% elif grains['fqdn'] == 'cl-node02' %}
webserver: nginx
{% endif %}
### 在httpd的 install.sls 引用
[root@cl-server pillar]# cat ../httpd/install.sls
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://httpd/files/httpd.conf
- mode: 644
- user: root
- template: jinja
- context:
host: {{ pillar['host'] }}
port: {{ pillar['port'] }}
### 在httpd的配置文件
Listen {{ host }}:{{ port }}
### 推送执行:
salt cl-node01 state.sls httpd.install
1.2 定义sls文件
### 在httpd下 lib.sls
[root@cl-server httpd]# cat lib.sls
{% set port = 9091 %}
### 在files下的配置文件httpd.conf中
{% from 'httpd/lib.sls' import port with context %}
Listen {{ host }}:{{ port }}