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


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

      

      include包含

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

      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

      扩展extend

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

      修改lamp.sls文件增加扩展

    include:
      - apache.init
      - php.init
      - mysql.init
    
    extend:
      php-install:
        pkg.installed:
          - name: php-mbstring
    

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

      require需求依赖

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

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

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

      报错1 没有发现配置文件

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

       

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

      watch我观察谁

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

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

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

      状态间的条件判断

      需求:网页在进入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>
    

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

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

      查看

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

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

      在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
    

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

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

       验证

      执行第一次添加

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

       

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

      

  • 相关阅读:
    forEach 终止循环
    js 解决引用赋值修改新数组导致原数组跟着改变的问题
    es6判断数组是否包含某个元素
    tab css 切换效果
    js对象赋值影响原对象
    小程序返回上个页面 修改上个页面的数据
    小程序 scroll-view scroll-x 不生效
    proxy跨域处理
    常用Dos操作指令
    django全文检索
  • 原文地址:https://www.cnblogs.com/minseo/p/8817628.html
Copyright © 2020-2023  润新知