saltstack(3)JINJA模板


官网:http://docs.saltstack.cn/ref/renderers/all/salt.renderers.jinja.html#module-salt.renderers.jinja

1.JINJA模板

Jinja是一种基于python的模板引擎,在SLS文件里可以直接使用jinja模板来做一些操作。
通过jinja模板可以为不同服务器定义各自的变量。
• 两种分隔符: {% … %} 和 {{ … }},前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上

[root@server11 salt]# pwd
/srv/salt
[root@server11 salt]# vim test.sls
[root@server11 salt]# cat test.sls 
/mnt/testfile:
  file.append:
    {% if grains['fqdn'] == 'server12' %}
    - text: server12
    {% elif grains['fqdn'] == 'server13' %}
    - text: server13
    {% endif %}
[root@server11 salt]# salt '*' state.sls test
#查看效果:
[root@server12 minion]# cd /mnt/
[root@server12 mnt]# ls
testfile
[root@server12 mnt]# cat testfile 
server12

在这里插入图片描述

2.变量引用

[root@server11 salt]# cd apache/
[root@server11 apache]# pwd
/srv/salt/apache
[root@server11 apache]# ls
files  init.sls
[root@server11 apache]# vim init.sls 
#后面添加
/var/www/html/index.html:
  file.managed:
    - source: salt://apache/files/index.html
    - template: jinja
    - context:
      NAME: server12##定义变量

[root@server11 apache]# vim files/index.html 
[root@server11 apache]# cat files/index.html #NAME是变量,引用变量
{{ NAME }}
[root@server11 apache]# salt server12 state.sls apache

#查看效果:
[root@server12 mnt]# cat /var/www/html/index.html 
server12

在这里插入图片描述

[root@server11 apache]# vim files/index.html 
[root@server11 apache]# cat files/index.html
{{ grains['os'] }} - {{ grains['fqdn'] }}
{{ NAME }}
[root@server11 apache]# vim init.sls 
#更改最后一行:
      NAME: {{ grains['ipv4'][-1] }}
[root@server11 apache]# salt server2 state.sls apache
#查看效果:
[root@server12 mnt]# cat /var/www/html/index.html 
RedHat - server12
192.168.100.242

在这里插入图片描述在这里插入图片描述

[root@server11 apache]# vim init.sls 
[root@server11 apache]# cat init.sls 
apache:
  pkg.installed:
  - pkgs:
    - httpd
    - php
    - php-mysql
  file.managed:
    - source: salt://apache/files/httpd.conf
    - name: /etc/httpd/conf/httpd.conf
    - template: jinja
    - context:
      port: 80
      bind: {{ grains['ipv4'][-1] }}
  service.running:
    - name: httpd
    - enable: true
    - watch:
      - file: apache

#/etc/httpd/conf/httpd.conf:
#  file.managed:
#    - source: salt://apache/files/httpd.conf

/var/www/html/index.html:
  file.managed:
    - source: salt://apache/files/index.html
    - template: jinja
    - context:
      NAME: {{ grains['ipv4'][-1] }}

#更改地方:
  file.managed:
    - source: salt://apache/files/httpd.conf
    - name: /etc/httpd/conf/httpd.conf
    - template: jinja
    - context:
      port: 80
      bind: {{ grains['ipv4'][-1] }}

在这里插入图片描述

[root@server11 apache]# vim files/httpd.conf 
#更改地方:
Listen {{ bind }}:{{ port }}

在这里插入图片描述

[root@server11 apache]# salt server12 state.sls apache
#查看效果:
[root@server12 mnt]# netstat -antlp|grep 80
tcp        0      0 192.168.100.242:80      0.0.0.0:*               LISTEN      5049/httpd       
[root@server12 mnt]# cat /etc/httpd/conf/httpd.conf 
Listen 192.168.100.242:80

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值