博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SaltStack基础 - 06Jinja模板

Posted on 2022-01-18 14:30  Kingdomer  阅读(27)  评论(0编辑  收藏  举报

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 }}