322ggg 发表于 2018-1-22 11:13:09

SaltStack的配置管理--jinja


SaltStack的配置管理--jinja

需求场景:使用jinja模板,让各节点的httpd都监听在本机的ip

# vim files/httpd.conf
配置文件修改监听的ip地址和端口以变量的形式
Listen {{ IPADDR }}:{{ PORT }}

# vim init.sls
apache-install:
pkg.installed:
    - name: httpd

apache-config:
file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source: salt://apache/files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja------------------>声明这个是模板
    - defaults:------------------------>定义默认的参数和值
      PORT: 80------------------------->PORT和IPADDR都为变量
      IPADDR: {{ grains['fqdn_ip4'] }}---->通过grains返回数据,此处返回的是一个列表形式,增加指定第一个

apache-auth:
pkg.installed:
    - name: httpd-tools
cmd.run:
    - name: htpasswd -bc /etc/httpd/conf/htpasswd_file admin admin
    - unless: test -f /etc/httpd/conf/htpasswd_file

apache-service:
service.running:
    - name: httpd
    - enable: True
    - reload: True
    - watch:
      - file: apache-config

# salt -S "192.168.56.11" state.highstate
----------
          ID: apache-config
    Function: file.managed
      Name: /etc/httpd/conf/httpd.conf
      Result: True
   Comment: File /etc/httpd/conf/httpd.conf updated
   Started: 11:14:08.537957
    Duration: 25.518 ms
   Changes:   
            ----------
            diff:
                  ---
                  +++
                  @@ -42,7 +42,7 @@
                   # prevent Apache from glomming onto all bound IP addresses.
                   #
                   #Listen 12.34.56.78:80
                  -Listen 80
                  +Listen 192.168.56.11:80---->更改为监听本机ip地址,端口为80

                   #
                   # Dynamic Shared Object (DSO) Support

# netstat -tulnp|grep httpd
tcp      0      0 192.168.56.11:80      0.0.0.0:*               LISTEN      6837/httpd         
# vim /srv/salt/base/top.sls
prod:
'linux-node*.example.com':
    - lamp
# salt '*' state.highstate
# netstat -tulnp |grep httpd
tcp      0      0 192.168.56.12:80      0.0.0.0:*               LISTEN      16447/httpd         

总结:
1.修改httpd.conf配置
2.修改sls增加:
- template: jinja
- defaults:
    PORT: 80
    IPADDR: {{ grains['fqdn_ip4'] }}



页: [1]
查看完整版本: SaltStack的配置管理--jinja