上一篇:SaltStack配置管理-LAMP状态设计

  

  include包含

  上篇安装LAMP环境是一个个环境安装,可以通过include模块全部安装

SaltStack配置管理-状态间关系_配置文件

  lamp.sls

include:
  - apache.init
  - php.init
  - mysql.init

  安装

salt -S '192.168.56.12' state.sls lamp saltenv=prod

  也可以直接写在top.sls里面使用高级状态执行 prod是环境linux-node2.example.com是主机ID

SaltStack配置管理-状态间关系_用户名_02

 

  扩展extend

  需求:需要在一台主机安装php包并且只在这台主机新安装一个包php-mbstring但是不要修改原sls文件

  修改lamp.sls文件增加扩展

include:
  - apache.init
  - php.init
  - mysql.init

extend:
  php-install:
    pkg.installed:
      - name: php-mbstring

SaltStack配置管理-状态间关系_php_03

  相当于追加了红色部分的安装,在没有修改原文件的情况下追加安装包

 

  require需求依赖

  需求:apache安装的时候假如配置文件有错误就不执行启动操作

  修改sls文件添加 file是模块名apache-config是模块ID 同理pkg也是

SaltStack配置管理-状态间关系_apache_04

 

  如果把配置文件改错写一个不存在的httpd配置文件执行会报错

  报错1 没有发现配置文件

  报错2 require失败所以没有启动

SaltStack配置管理-状态间关系_apache_05

   

  require-in我被谁依赖(两个记住一个即可)

SaltStack配置管理-状态间关系_用户名_06

 

  watch我观察谁

  如果文件修改则重载或者重启

SaltStack配置管理-状态间关系_mysql_07

  执行状态发现文件变化重载(不加reload就是重启restart)

SaltStack配置管理-状态间关系_配置文件_08

 

   watch_in我被谁观察(两个记住一个即可)

SaltStack配置管理-状态间关系_mysql_09

 

  状态间的条件判断

  需求:网页在进入admin文件夹的时候需要输入用户名和密码

  修改apache配置文件/etc/httpd/conf/httpd.conf添加需要加密的文件夹

<Directory "/var/www/html/admin" >
        AllowOverride All
        Order allow,deny
        Allow from all
        AuthType Basic
        AuthName "hehe"
        AuthUserFile /etc/httpd/conf/htpasswd_file
        Require user admin
</Directory>

SaltStack配置管理-状态间关系_mysql_10

  以非交换的方式设置用户名和密码

htpasswd -bc /etc/httpd/conf/htpasswd_file admin admin

  查看

SaltStack配置管理-状态间关系_php_11

  查看设置的需要加密的文件

SaltStack配置管理-状态间关系_mysql_12

  输入地址访问需要输入刚刚设置的用户名和密码

SaltStack配置管理-状态间关系_php_13

SaltStack配置管理-状态间关系_配置文件_14

  在sls里面实现编辑apache的init文件

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
    - watch_in:
      - service: apache-service

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

SaltStack配置管理-状态间关系_apache_15

  安装httpd-tools包是htpasswd命令执行需要该包

  unless是判断添加如果为真及加密文件存在则不执行以免重复添加

   验证

  执行第一次添加

SaltStack配置管理-状态间关系_用户名_16

  再次执行判断条件为真就不添加该密码文件

SaltStack配置管理-状态间关系_php_17

   

  下一篇:SaltStack配置管理-jinja模板