saltstack的jinjia模板

比如我们有这样一个需求,就是需要apache监听自己服务器的ip地址.

这个可以用jinjia模板来实现的.

实现jianjia模板需要三部

1.file状态使用template参数

2.模板文件里面变量使用{{名称}} {{PORT}}

3.变量列表

  -default:

    PORT:8080

 

示例:

vim apache.sls

apache-install:

  pkg.installed:

    - name: httpd

 

apache-config:

  file.managed:

    - name: /etc/httpd/conf/httpd.conf

    - source: salt://lamp/files/httpd.conf      #这里的salt://指当前环境base里的  /srv/salt

    - user: root

    - group: root

    - mode: 644

    - template: jinjia

apache-service:

  service.running:

    - name: httpd

    - enable: True

 

然后在/srv/salt/master/lamp/files/httpd.conf

修改文件内容,

Listen {{ IPADDR}} :80

 

给IPADDR这个变量赋值.

这个赋值是在上面的apache.sls文件里面修改的,参考如下:

  

vim apache.sls

apache-install:

  pkg.installed:

    - name: httpd

 

apache-config:

  file.managed:

    - name: /etc/httpd/conf/httpd.conf

    - source: salt://lamp/files/httpd.conf      #这里的salt://指当前环境base里的  /srv/salt

    - user: root

    - group: root

    - mode: 644

    - template: jinjia

    - defaults:

      IPADDR: {{grains['fqdn_ip4'][0]}}  #这里如果是pillar的话参考这样{{pillar['apache']['PORT']}},这里也可以通过执行远程命令获取值示例:{{salt['network.hw_addr'('eth0')]}}

      

apache-service:

  service.running:

    - name: httpd

    - enable: True

posted @ 2019-03-13 15:35  auxiaoliu  阅读(617)  评论(0编辑  收藏  举报