saltstack中jinja模板使用详解

一、jiaja模板简介

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

二、jinja模板使用方式

结合apache的部署来理解jiaja模板:
在这里插入图片描述
(1)install.sls文件

[root@server1 apache]# cat install.sls 
install-apache:
  pkg.installed:
    - pkgs:
      - httpd

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

  service.running:
    - name: httpd 
    - relaod: True
    - watch:
      - file: install-apache

(2)推送:

[root@server1 apache]# salt server2 state.sls apache.install

在这里插入图片描述

1.在普通文件的使用

(1)更改文件

vim instsll.sls
    - template: jinja
    - context:
      port: 80

在这里插入图片描述
(2)更改模板文件

vim files/httpd.conf

在这里插入图片描述
(3)推送

salt server2 state.sls apache.install

在这里插入图片描述
2.使用grains变量

(1) 在普通文件的使用grains变量

更改文件

vim /srv/salt/apache/instsll.sls
    - template: jinja
    - context:
      port: 80
      host: {{ grains['ipv4'][1] }}

更改模板文件

vim files/httpd.conf

在这里插入图片描述

salt server2 state.sls apache.install

在这里插入图片描述

(2) 直接引用grains变量

vim files/httpd.conf
Listen {{ grains['ipv4'][1] }}

在这里插入图片描述
salt server2 state.sls apache.install

在这里插入图片描述

3.使用pillar变量

vim /src/pillar/web/vars.sls
{% if grains['fqdn'] == 'server2' %}
webserver: httpd
ip: 172.25.60.2
{% elif grains['fqdn'] == 'server3' %}
webserver: nginx
{% endif %}

在这里插入图片描述

(1)在普通文件的使用pillar变量

vim /srv/salt/apache/instsll.sls
    - template: jinja
    - context:
      port: 80
      host:{{ pillar['ip'] }}

在这里插入图片描述
vim files/httpd.conf

在这里插入图片描述

salt server2 state.sls apache.install
在这里插入图片描述

(2).直接引用pillar变量:
vim files/httpd.conf

Listen {{ pillar['ip'] }}
salt server2 state.sls apache.install

在这里插入图片描述
salt server2 state.sls apache.install
在这里插入图片描述

4.import方式,可在state文件之间共享:
(1)定义变量文件:

vim /srv/salt/apache/lib.sls
{% set port = 8080 %}
在这里插入图片描述

(2)导入模板文件:

vim httpd.conf
{% from 'apache/lib.sls' import port %}
...
Listen {{ prot }}	

在这里插入图片描述
在这里插入图片描述
(3)推送

salt server2 state.sls apache.install

在这里插入图片描述
(4)在server2上查看
在这里插入图片描述

Import方式扩展: /srv/salt/nginx/install.sls
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值