美文网首页
7-saltstack(4)_saltstack的state模块

7-saltstack(4)_saltstack的state模块

作者: 风逍H | 来源:发表于2017-10-26 20:42 被阅读35次

    使用requisites对状态进行排序控制,结合前面的file.managed文件下发和-watchrequisites实现自动化

    直接上程序

    install_httpd:
      pkg.installed:
        - name: httpd
    httpd_running:
      service.running:
        - name: httpd
        - enable: True
        - reload: True
        - require:
          - pkg: install_httpd
        - watch:
          - file: httpd_conf
    httpd_conf:                                     ##   <========================= -watch
      file.managed:
        - name: /etc/httpd/conf/httpd.conf
        - source: salt://httpd.conf
        - user: root
        - group: root
        - mode: 600
    
    • 在这里用了状态排序控制 -require ,指定了httpd_running的执行前提是 -pkg: install_httpd(安装了httpd)
    • 这里使用了 -watch监控httpd_conf(不是http.conf),一旦httpd_conf更改,就触发httpd_runningreload重启
    • httpd_conffile.managed下发文件,将/srv/salt/httpd.conf文件同步给minion端的/etc/httpd/conf/httpd.conf文件,所以要提前创建自定义的/srv/salt/httpd.conf文件
    • file.manage下发文件指定了文件(同步)来源、用户和组以及权限。
    • 通过- require- watch两个requisites我们可以完成绝大多数的顺序控制,另外还有其他的一些requisites,可查阅官方文档。另外每个requisites都对应着一个_in形式,功能一样,只是放置位置不同(依赖于……和被……依赖)推荐只用原型。
    • sys.list_functions service跟service.running非常像,所以要注意,前者是命令,后者是state模块的文件格式。

    部署lamp架构

    2017.7.1版本,指定依赖require要用- pkg/pkgs,pkg.installed后如果是一个软件包,用name/names,两个或以上的话用pkgs/names。

    install_httpd:
      pkg.installed:
        - pkgs: 
          - httpd
          - httpd-devel 
    
    httdp_conf:  
      file.managed:
        - name: /etc/httpd/conf/httpd.conf
        - source: salt://httpd.conf
        - user: root
        - group: root
        - mode: 600 
      
    
    httpd_running:
      service.running:
        - name: httpd
        - enable: True
        - require:
          - pkg: install_httpd      ## 这里注意!
        - watch:
          - file: httdp_conf
    
    
    install_php:
      pkg.installed:
        - pkgs:
          - php
          - php-mysql
          - php-common
          - php-gd
          - php-mbstring
          - php-devel
          - php-xml
          - php-fpm
    
    php_running:
      service.running:
        - name: php-fpm
        - enable: True
        - reload: True
        - watch:
          - file: php_conf
    
    php_conf:
      file.managed:
        - name: /etc/php.ini
        - source: salt://php.ini
        - user: root
        - group: root
        - mode: 600
    
    mysql_install:
      pkg.installed:
        - pkgs:
          - mysql
          - mysql-server
          - mysql-devel
      service.running:
        - name: mysqld
        - enable: True
        - reload: True
        - require:
          - pkg: install_httpd
        - watch: 
          - file: mysql_conf
    mysql_conf:
      file.managed:
        - name: /etc/my.cnf
        - source: salt://my.cnf
        - user: root
        - group: root
        - mode: 600
    

    相关文章

      网友评论

          本文标题:7-saltstack(4)_saltstack的state模块

          本文链接:https://www.haomeiwen.com/subject/ufclpxtx.html