• Saltstack_使用指南03_配置管理


    1. 主机规划

    注意事项

    修改了master或者minion的配置文件,那么必须重启对应的服务。

    2. 了解YAML

    具体地址

    https://docs.saltstack.com/en/latest/topics/yaml/index.html    

    YAML:三板斧

    1、缩进:  2个空格,不能使用Tab
    2、冒号:  key: value   注意有空格
    3、短横线:  - list1     注意有空格
              - list2

    3. 配置管理路径指定

    3.1. master指定配置管理基本路径

     1 [root@salt100 salt]# pwd
     2 /etc/salt
     3 [root@salt100 salt]# vim master
     4 ………………
     5 # Example:
     6 # file_roots:
     7 #   base:
     8 #     - /srv/salt/
     9 #   dev:
    10 #     - /srv/salt/dev/services
    11 #     - /srv/salt/dev/states
    12 #   prod:
    13 #     - /srv/salt/prod/services
    14 #     - /srv/salt/prod/states
    15 # 
    16 # 将如下的注释放开即可
    17 # 也可以不变更配置,因为这是个默认配置★★
    18 file_roots:
    19   base:
    20     - /srv/salt
    21 ………………
    22 [root@salt100 salt]# systemctl restart salt-master.service  # 修改了配置文件,必须重启服务 

    3.2. 创建对应的目录

    [root@salt100 ~]# mkdir -p /srv/salt

    4. 测试案例--单个状态管理

    4.1. 编写测试案例----安装apache

    1、为了方便后期维护指定一个特定目录

    1 [root@salt100 salt]# pwd
    2 /srv/salt
    3 [root@salt100 salt]# mkdir web
    4 [root@salt100 salt]# cd web/
    5 [root@salt100 web]# pwd
    6 /srv/salt/web

    2、编写sls文件

     1 [root@salt100 web]# pwd
     2 /srv/salt/web
     3 [root@salt100 web]# cat apache.sls  # 后缀名 sls,salt执行时会找sls文件
     4 # sls文件允许注释存在,内容可以直接复制使用
     5 # 自定义的一个ID,唯一标识 ★★★★★
     6 apache-install:
     7   # pkg 是一个执行模块   . 引用   installed 使用方法
     8   pkg.installed:
     9     # - names 参数 支持多个列表
    10     - names:
    11       - httpd
    12       - httpd-devel
    13 
    14 # enable: True 表示:开机自启动
    15 apache-service:
    16   service.running:
    17     - name: httpd
    18     - enable: True

    4.2. 在master机器salt100上执行

    给salt01、salt02、salt03部署安装httpd

     1 # 在master机器操作
     2 [root@salt100 ~]# salt 'salt0*' test.ping  # 看salt01、salt02、salt03是否可通信
     3 salt01:
     4     True
     5 salt03:
     6     True
     7 salt02:
     8     True
     9 [root@salt100 ~]# salt 'salt0*' state.sls web.apache  # 给 salt01、salt02、salt03 部署httpd
    10 # 说明:
    11 # 1、master 配置管理基本目录为 /srv/salt
    12 # 2、apache.sls 的路径为:/srv/salt/web/apache.sls
    13 # 3、state.sls web.apache  说明 state模块,调用 sls方法, 调用的文件是web路径下的apache.sls文件【只是最后的 sls后缀名省略了】

    备注:做了哪些事情

    1、  将/srv/salt/web/apache.sls文件从master发送给minion;

    2、  minion得到文件后,根据master指令执行apache.sls中的内容

    master将文件发送到minion的那个位置

     1 # 在minion端查看
     2 [root@salt01 salt]# pwd
     3 /var/cache/salt
     4 [root@salt01 salt]# ll
     5 total 0
     6 drwxr-xr-x 6 root root 103 Dec 11 23:52 minion
     7 [root@salt01 salt]# tree
     8 .
     9 └── minion
    10     ├── accumulator
    11     ├── extmods
    12     ├── files
    13     │   └── base
    14     │       └── web
    15     │           └── apache.sls
    16     ├── highstate.cache.p
    17     ├── proc
    18     └── sls.p
    19 
    20 7 directories, 3 files

    4.3. 执行结果信息讲解

      1 # 执行返回结果是无序的
      2 [root@salt100 ~]# salt 'salt0*' state.sls web.apache 
      3 salt02:  # salt02执行结果信息
      4 ----------
      5           ID: apache-install  # apache.sls 中自定的ID【名称】
      6     Function: pkg.installed
      7         Name: httpd
      8       Result: True
      9      Comment: The following packages were installed/updated: httpd
     10      Started: 23:51:46.604986
     11     Duration: 30335.469 ms
     12      Changes:   
     13               ----------
     14               httpd:
     15                   ----------
     16                   new:
     17                       2.4.6-88.el7.centos
     18                   old:
     19               httpd-tools:
     20                   ----------
     21                   new:
     22                       2.4.6-88.el7.centos
     23                   old:
     24               mailcap:
     25                   ----------
     26                   new:
     27                       2.1.41-2.el7
     28                   old:
     29 ----------
     30           ID: apache-install
     31     Function: pkg.installed
     32         Name: httpd-devel
     33       Result: True
     34      Comment: The following packages were installed/updated: httpd-devel
     35      Started: 23:52:16.965844
     36     Duration: 6661.51 ms
     37      Changes:   
     38               ----------
     39               apr-devel:
     40                   ----------
     41                   new:
     42                       1.4.8-3.el7_4.1
     43                   old:
     44               apr-util-devel:
     45                   ----------
     46                   new:
     47                       1.5.2-6.el7
     48                   old:
     49               cyrus-sasl:
     50                   ----------
     51                   new:
     52                       2.1.26-23.el7
     53                   old:
     54               cyrus-sasl-devel:
     55                   ----------
     56                   new:
     57                       2.1.26-23.el7
     58                   old:
     59               expat-devel:
     60                   ----------
     61                   new:
     62                       2.1.0-10.el7_3
     63                   old:
     64               httpd-devel:
     65                   ----------
     66                   new:
     67                       2.4.6-88.el7.centos
     68                   old:
     69               libdb-devel:
     70                   ----------
     71                   new:
     72                       5.3.21-24.el7
     73                   old:
     74               openldap:
     75                   ----------
     76                   new:
     77                       2.4.44-20.el7
     78                   old:
     79                       2.4.44-13.el7
     80               openldap-devel:
     81                   ----------
     82                   new:
     83                       2.4.44-20.el7
     84                   old:
     85 ----------
     86           ID: apache-service
     87     Function: service.running
     88         Name: httpd
     89       Result: True
     90      Comment: Service httpd has been enabled, and is running
     91      Started: 23:52:24.619598
     92     Duration: 314.737 ms
     93      Changes:   
     94               ----------
     95               httpd:
     96                   True
     97 
     98 Summary for salt02
     99 ------------
    100 Succeeded: 3 (changed=3)
    101 Failed:    0
    102 ------------
    103 Total states run:     3
    104 Total run time:  37.312 s
    105 salt01:  # salt01执行结果信息
    106 ………………
    107 salt03:  # salt03执行结果信息
    108 ----------
    109 ………………

    5. Salt高级状态管理

    生产环境使用,注意事项:

    1、执行时不能使用 '*' ,所有minion执行
    2、不能直接执行,要先 test=True;

    5.1. 高级状态sls文件的位置和名称

           默认file_roots的位置

           不用修改配置文件,默认即可。

    5.2. 编写top.sls文件

     1 [root@salt100 salt]# pwd
     2 /srv/salt
     3 [root@salt100 salt]# tree
     4 .
     5 ├── top.sls
     6 └── web
     7     └── apache.sls
     8 
     9 1 directory, 2 files
    10 [root@salt100 salt]# cat top.sls 
    11 base:
    12   # 使用通配符
    13   'salt0*':
    14     - web.apache
    15     # - web.nginx  # 可以有多个
    16   # 指定具体minion
    17   'salt03':
    18     - web.apache

    5.3. 执行高级状态

    1 [root@salt100 ~]# salt 'salt01' state.highstate test=True  # 必须先执行这个
    2 ………………
    3 # 原因:防止自己手动改了minion机器上组件的配置信息,但是没有同步到salt;
    4 # 结果直接执行后,又改回去了。
    5 [root@salt100 ~]# salt 'salt01' state.highstate  # 执行高级状态,通过top.sls 去查找
    6 ………………
  • 相关阅读:
    Django 用ModelForm批量保存form表单(非常实用的方法) mfor_verity项目
    jquery ajax异步提交表单数据的方法
    python字符串转换成变量的几种方法
    django 线上线下使用不同的数据库 上线:mysql 线下sqlite3 以及debug模式的开和关
    django admin 或xdmin list_display search_fields list_filter 如果显示搜索外键或多对多字段
    nonce和timestamp在Http安全协议中的作用
    Web API接口 安全验证
    .Net环境下的缓存技术介绍
    .Net缓存管理框架CacheManager
    在asp.net web api中利用过滤器设置输出缓存
  • 原文地址:https://www.cnblogs.com/zhanglianghhh/p/10604525.html
Copyright © 2020-2023  润新知