• Saltstack配置管理


    配置管理也叫状态管理

    严格意思上讲状态是不可回滚的

    参考官方文档

    https://www.unixhot.com/docs/saltstack/contents.html

    状态模块

    https://www.unixhot.com/docs/saltstack/ref/states/all/

    Salt State SLS描述文件  YAML

    apache-service:      #ID声明
      service.running:     #State声明 状态声明
        - name: httpd    #选项声明
        - enable: True

    怎么部署一个LAMP架构

    1,安装软件包           pkg  

    2,修改配置文件   file

    3,启动服务     service

    pkg.installed  安装 

    pkg.latest    最新版本

    pkg.remove   移除  

    pkg.purge   同时删除配置文件

    pkgs      同时安装多个包

    例如

    php.packages:
      pkg.installed:
        - fromrepo: wheezy-php55
        - pkgs:
          - php5-fpm
          - php5-cli
          - php5-curl

    PS:一个ID声明下面,状态模块不能重复使用。(Python字典里面的key不能重复)

    mkdir /srv/salt/lamp

    mkdir /srv/salt/lamp/files

    拷贝配置文件到这个目录下

    cp /etc/my.cnf ./
    cp /etc/httpd/conf/httpd.conf ./
    /files]# cp /etc/php.ini ./

    vim /srv/salt/lamp/lamp.sls

    lamp-pkg:
      pkg.installed:
        - pkgs:
          - httpd
          - php
          - mariadb
          - mariadb-server
          - php-mysql
          - php-cli
          - php-mbstring
    
    apache-config:
      file.managed:
        - name: /etc/httpd/conf/httpd.conf
        - source: salt://lamp/files/httpd.conf
        - user: root
        - group: root
        - mode: 644
    
    php-config:
      file.managed:
        - name: /etc/php.ini
        - source: salt://lamp/files/php.ini
        - user: root
        - group: root
        - mode: 644
    
    mysql-config:
      file.managed:
        - name: /etc/my.cnf
        - source: salt://lamp/files/my.cnf
        - user: root
        - group: root
        - mode: 644
    
    apache-service:
      service.running:
        - name: httpd
        - enable: True
        - reload: True
    
    mysql-service:
      service.running:
        - name: mariadb
        - enable: True
        - reload: True

    执行安装

    salt '10-8-86-172' state.sls lamp.lamp

    PS:salt://表示当前环境的根目录,即/srv/salt目录

       可以在minion端查看debug查看执行过程及错误

    tail -f /var/log/salt/minion

    状态间关系

    1,我依赖谁

    依赖这个安装包和这个配置文件

    2,我被谁依赖

    和依赖是一样的意思记住一个就行

    3,我监控谁

    如果apache-config状态发生变化则reload,如果reload不是True则是restart

    4,我被谁监控

       同理watch_in写在apache-config ,也是两个记住一个即可

    5,我引用谁

    include:

      - lamp.pkg

    类似于配置文件的包含,把不同的模块分开来好管理

    6,我扩展谁

    Jinja2

    参考网站

    http://docs.jinkan.org/docs/jinja2/

    两种分隔符:{% ... %}和 {{ ... }}

    三步走

      1,告诉File模块 ,你需要使用jinja

          - template: jinja

      2,要列出变量参数列表

          - defaults:

            PORT: 88

      3,模板引用

          修改配置文件 Listen {{ PORT }}

    修改lamp.sls

    修改httpd.conf

    再次执行

    模板里面支持 salt grains pillar进行赋值

    使用pillar

    先获取到

    修改httpd配置文件

    jinjia模板

    修改lamp.sls

    修改httpd配置文件

    PS:也可以写在sls里面的变量列表中

    例如

  • 相关阅读:
    接口测试 API测试
    接口测试 JMeter 开坑
    【测试笔记】集成测试 自顶向下 自底向上
    白盒测试 各类覆盖方法辨析
    eureka 管理界面打不开
    Spring Boot 2.0 Admin
    spring swagger2配置
    解决 Registered driver with driverClassName=oracle.jdbc.driver.OracleDriver was not found, trying direct instantiation.
    springboot+mybatis在插入空值时报错的问题
    Vue Cli 3代理配置
  • 原文地址:https://www.cnblogs.com/minseo/p/6852479.html
Copyright © 2020-2023  润新知