• ADADADADAD

    SaltStack实战之配置管理-Jinja2模板[ mysql数据库 ]

    mysql数据库 时间:2024-12-24 19:13:43

    作者:文/会员上传

    简介:

    SaltStack实战之配置管理-Jinja2模板
    学习SaltStack

    SaltStack实战之配置管理-Jinja2模板1. Salt yaml配置文件使用Jinja2模板介绍1.1 File状态使用template参数1.2 模板文

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    SaltStack实战之配置管理-Jinja2模板


    学习SaltStack



    SaltStack实战之配置管理-Jinja2模板

    1. Salt yaml配置文件使用Jinja2模板介绍

    1.1 File状态使用template参数

    1.2 模板文件里面变量使用{{ 名称 }}

    1.3 变量列表

    2. 实战应用


    1. Salt yaml配置文件使用Jinja2模板介绍

    jinja2官方网站:
    http://jinja.pocoo.org/

    1.1 File状态使用template参数
    - template: jinja

    1.2 模板文件里面变量使用{{ 名称 }}
    ` PORT `

    1.3 变量列表
    - defaults:
    PORT: 8080

    2. 实战应用

    添加监听主机和端口变量

    vim /srv/salt/devfiles/httpd.conf

    Listen ` HOST `:` PORT `

    # ` MAC `

    配置salt master配置文件、pillar配置文件、lamp.sls添加jinja模板:

    [root@salt-master112 dev]# egrep -v '^$|^[#]' /etc/salt/master
    state_top: top.sls
    file_roots:
    base:
    - /srv/salt
    dev:
    - /srv/salt/dev
    test:
    - /srv/salt/test
    prod:
    - /srv/salt/prod
    pillar_roots:
    base:
    - /srv/salt/pillar
    dev:
    - /srv/salt/dev/pillar
    [root@salt-master112 dev]# cat /srv/salt/pillar/top.sls
    dev:
    'node*.test.com':
    - apache
    [root@salt-master112 dev]# cat /srv/salt/dev/pillar/apache.sls
    apache:
    HOST: {{ grains['fqdn_ip4'][0] }}
    PORT: 8080
    MAC: {{ salt['network.hw_addr']('eth0') }}
    [root@salt-master112 dev]# salt '*' saltutil.refresh_pillar
    node1.test.com:
    True
    master.test.com:
    True
    node2.test.com:
    True
    [root@salt-master112 dev]# salt '*' pillar.items
    master.test.com:
    ----------
    node1.test.com:
    ----------
    apache:
    ----------
    HOST:
    10.1.0.109
    MAC:
    00:50:56:a4:44:7a
    PORT:
    8080
    node2.test.com:
    ----------
    apache:
    ----------
    HOST:
    10.1.0.110
    MAC:
    00:50:56:a4:44:7a
    PORT:
    8080
    [root@salt-master112 dev]# cat /srv/salt/dev/lamp.sls
    lamp-pkg-install:
    pkg.installed:
    - names:
    - php
    - php-fpm
    - mysql
    - php-mysql
    - php-pdo

    apache-service:
    pkg.installed:
    - name: httpd
    file.managed:
    - name: /etc/httpd/conf/httpd.conf
    - source:
    - salt://files/httpd.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja
    - defaults:
    HOST: {{ pillar['apache']['HOST'] }}
    PORT: {{ pillar['apache']['PORT'] }}
    MAC: {{ pillar['apache']['MAC'] }}
    - require:
    - pkg: apache-service
    service.running:
    - name: httpd
    - enable: True
    - reload: True
    - watch:
    - file: apache-service

    mysql-service:
    pkg.installed:
    - name: mysql-server
    - require_in:
    - file: mysql-service
    file.managed:
    - name: /etc/my.cnf
    - source:
    - salt://files/my.cnf
    - user: root
    - group: root
    - mode: 644
    - watch_in:
    - service: mysql-service
    service.running:
    - name: mysqld
    - enable: True

    php-fpm-service:
    service.running:
    - name: php-fpm
    - enable: True
    [root@salt-master112 dev]#

    执行结果:

    [root@salt-master112 dev]# salt '*' state.highstate
    master.test.com:
    ----------
    ID: /etc/resolv.conf
    Function: file.managed
    Result: True
    Comment: File /etc/resolv.conf is in the correct state
    Started: 17:54:00.390576
    Duration: 31.841 ms
    Changes:

    Summary for master.test.com
    ------------
    Succeeded: 1
    Failed:0
    ------------
    Total states run: 1
    Total run time: 31.841 ms
    node1.test.com:
    ----------
    ID: /etc/resolv.conf
    Function: file.managed
    Result: True
    Comment: File /etc/resolv.conf is in the correct state
    Started: 09:56:43.761673
    Duration: 34.809 ms
    Changes:
    ----------
    ID: lamp-pkg-install
    Function: pkg.installed
    Name: php-fpm
    Result: True
    Comment: Package php-fpm is already installed
    Started: 09:56:44.225287
    Duration: 630.568 ms
    Changes:
    ----------
    ID: lamp-pkg-install
    Function: pkg.installed
    Name: php-pdo
    Result: True
    Comment: Package php-pdo is already installed
    Started: 09:56:44.856050
    Duration: 0.522 ms
    Changes:
    ----------
    ID: lamp-pkg-install
    Function: pkg.installed
    Name: php
    Result: True
    Comment: Package php is already installed
    Started: 09:56:44.856677
    Duration: 0.366 ms
    Changes:
    ----------
    ID: lamp-pkg-install
    Function: pkg.installed
    Name: php-mysql
    Result: True
    Comment: Package php-mysql is already installed
    Started: 09:56:44.857143
    Duration: 0.386 ms
    Changes:
    ----------
    ID: lamp-pkg-install
    Function: pkg.installed
    Name: mysql
    Result: True
    Comment: Package mysql is already installed
    Started: 09:56:44.857623
    Duration: 0.349 ms
    Changes:
    ----------
    ID: apache-service
    Function: pkg.installed
    Name: httpd
    Result: True
    Comment: Package httpd is already installed
    Started: 09:56:44.858061
    Duration: 0.343 ms
    Changes:
    ----------
    ID: apache-service
    Function: file.managed
    Name: /etc/httpd/conf/httpd.conf
    Result: True
    Comment: File /etc/httpd/conf/httpd.conf updated
    Started: 09:56:44.858780
    Duration: 34.022 ms
    Changes:
    ----------
    diff:
    ---
    +++
    @@ -133,9 +133,9 @@
    # prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
    #
    #Listen 12.34.56.78:80
    -Listen 0.0.0.0:8080
    -
    -# 00:50:56:a4:7a:70
    +Listen 10.1.0.109:8080
    +
    +# 00:50:56:a4:44:7a
    # Dynamic Shared Object (DSO) Support
    #
    # To be able to use the functionality of a module which was built as a DSO you
    ----------
    ID: apache-service
    Function: service.running
    Name: httpd
    Result: True
    Comment: Service reloaded
    Started: 09:56:44.950689
    Duration: 87.451 ms
    Changes:
    ----------
    httpd:
    True
    ----------
    ID: mysql-service
    Function: pkg.installed
    Name: mysql-server
    Result: True
    Comment: Package mysql-server is already installed
    Started: 09:56:45.038390
    Duration: 0.739 ms
    Changes:
    ----------
    ID: mysql-service
    Function: file.managed
    Name: /etc/my.cnf
    Result: True
    Comment: File /etc/my.cnf is in the correct state
    Started: 09:56:45.039596
    Duration: 17.182 ms
    Changes:
    ----------
    ID: mysql-service
    Function: service.running
    Name: mysqld
    Result: True
    Comment: The service mysqld is already running
    Started: 09:56:45.057008
    Duration: 68.422 ms
    Changes:
    ----------
    ID: php-fpm-service
    Function: service.running
    Name: php-fpm
    Result: True
    Comment: The service php-fpm is already running
    Started: 09:56:45.125649
    Duration: 53.97 ms
    Changes:

    Summary for node1.test.com
    -------------
    Succeeded: 13 (changed=2)
    Failed: 0
    -------------
    Total states run: 13
    Total run time: 929.129 ms
    node2.test.com:
    ----------
    ID: /etc/resolv.conf
    Function: file.managed
    Result: True
    Comment: File /etc/resolv.conf is in the correct state
    Started: 09:56:44.357709
    Duration: 56.916 ms
    Changes:
    ----------
    ID: lamp-pkg-install
    Function: pkg.installed
    Name: php-fpm
    Result: True
    Comment: Package php-fpm is already installed
    Started: 09:56:45.634382
    Duration: 1721.668 ms
    Changes:
    ----------
    ID: lamp-pkg-install
    Function: pkg.installed
    Name: php-pdo
    Result: True
    Comment: Package php-pdo is already installed
    Started: 09:56:47.356467
    Duration: 1.34 ms
    Changes:
    ----------
    ID: lamp-pkg-install
    Function: pkg.installed
    Name: php
    Result: True
    Comment: Package php is already installed
    Started: 09:56:47.358095
    Duration: 1.359 ms
    Changes:
    ----------
    ID: lamp-pkg-install
    Function: pkg.installed
    Name: php-mysql
    Result: True
    Comment: Package php-mysql is already installed
    Started: 09:56:47.359721
    Duration: 1.553 ms
    Changes:
    ----------
    ID: lamp-pkg-install
    Function: pkg.installed
    Name: mysql
    Result: True
    Comment: Package mysql is already installed
    Started: 09:56:47.361541
    Duration: 1.361 ms
    Changes:
    ----------
    ID: apache-service
    Function: pkg.installed
    Name: httpd
    Result: True
    Comment: Package httpd is already installed
    Started: 09:56:47.363199
    Duration: 1.377 ms
    Changes:
    ----------
    ID: apache-service
    Function: file.managed
    Name: /etc/httpd/conf/httpd.conf
    Result: True
    Comment: File /etc/httpd/conf/httpd.conf updated
    Started: 09:56:47.365880
    Duration: 84.28 ms
    Changes:
    ----------
    diff:
    ---
    +++
    @@ -133,9 +133,9 @@
    # prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
    #
    #Listen 12.34.56.78:80
    -Listen 0.0.0.0:8080
    -
    -# 00:50:56:a4:00:5c
    +Listen 10.1.0.110:8080
    +
    +# 00:50:56:a4:44:7a
    # Dynamic Shared Object (DSO) Support
    #
    # To be able to use the functionality of a module which was built as a DSO you
    ----------
    ID: apache-service
    Function: service.running
    Name: httpd
    Result: True
    Comment: Service reloaded
    Started: 09:56:47.617560
    Duration: 236.903 ms
    Changes:
    ----------
    httpd:
    True
    ----------
    ID: mysql-service
    Function: pkg.installed
    Name: mysql-server
    Result: True
    Comment: Package mysql-server is already installed
    Started: 09:56:47.855453
    Duration: 6.781 ms
    Changes:
    ----------
    ID: mysql-service
    Function: file.managed
    Name: /etc/my.cnf
    Result: True
    Comment: File /etc/my.cnf is in the correct state
    Started: 09:56:47.865735
    Duration: 72.983 ms
    Changes:
    ----------
    ID: mysql-service
    Function: service.running
    Name: mysqld
    Result: True
    Comment: The service mysqld is already running
    Started: 09:56:47.939601
    Duration: 169.518 ms
    Changes:
    ----------
    ID: php-fpm-service
    Function: service.running
    Name: php-fpm
    Result: True
    Comment: The service php-fpm is already running
    Started: 09:56:48.109622
    Duration: 157.914 ms
    Changes:

    Summary for node2.test.com
    -------------
    Succeeded: 13 (changed=2)
    Failed: 0
    -------------
    Total states run: 13
    Total run time:2.514 s
    [root@salt-master112 dev]#

    node1和node2的apache配置文件,Listen位置内容也有相应变化。

    [root@im109 ~]# vim /etc/httpd/conf/httpd.conf 
    Listen 10.1.0.109:8080

    # 00:50:56:a4:44:7a
    [root@im110 ~]# vim /etc/httpd/conf/httpd.conf 
    Listen 10.1.0.110:8080

    # 00:50:56:a4:44:7a

    SaltStack实战之配置管理-Jinja2模板.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: saltstackji