当前位置: 首页 > news >正文

Saltstack_使用指南03_配置管理

1. 主机规划

Saltstack_使用指南03_配置管理

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

2. 了解YAML

Saltstack_使用指南03_配置管理

具体地址
https://docs.saltstack.com/en/latest/topics/yaml/index.html 
YAML:三板斧
1、缩进:  2个空格,不能使用Tab
2、冒号:  key: value   注意有空格
3、短横线:  - list1     注意有空格
                      - list2

3. 配置管理路径指定

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

[root@salt100 salt]# pwd
/etc/salt
[root@salt100 salt]# vim master
………………
# Example:
# file_roots:
#   base:
#     - /srv/salt/
#   dev:
#     - /srv/salt/dev/services
#     - /srv/salt/dev/states
#   prod:
#     - /srv/salt/prod/services
#     - /srv/salt/prod/states
# 
# 将如下的注释放开即可
# 也可以不变更配置,因为这是个默认配置★★
file_roots:
  base:
    - /srv/salt
………………
[root@salt100 salt]# systemctl restart salt-master.service  # 修改了配置文件,必须重启服务 

Saltstack_使用指南03_配置管理

3.2. 创建对应的目录

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

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

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

1、为了方便后期维护指定一个特定目录
[root@salt100 salt]# pwd
/srv/salt
[root@salt100 salt]# mkdir web
[root@salt100 salt]# cd web/
[root@salt100 web]# pwd
/srv/salt/web
2、编写sls文件
[root@salt100 web]# pwd
/srv/salt/web
[root@salt100 web]# cat apache.sls  # 后缀名 sls,salt执行时会找sls文件
# sls文件允许注释存在,内容可以直接复制使用
# 自定义的一个ID,唯一标识 ★★★★★
apache-install:
  # pkg 是一个执行模块   . 引用   installed 使用方法
  pkg.installed:
    # - names 参数 支持多个列表
    - names:
      - httpd
      - httpd-devel

# enable: True 表示:开机自启动
apache-service:
  service.running:
    - name: httpd
    - enable: True

4.2. 在master机器salt100上执行

给salt01、salt02、salt03部署安装httpd
# 在master机器操作
[root@salt100 ~]# salt 'salt0*' test.ping  # 看salt01、salt02、salt03是否可通信
salt01:
    True
salt03:
    True
salt02:
    True
[root@salt100 ~]# salt 'salt0*' state.sls web.apache  # 给 salt01、salt02、salt03 部署httpd
# 说明:
# 1、master 配置管理基本目录为 /srv/salt
# 2、apache.sls 的路径为:/srv/salt/web/apache.sls
# 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的那个位置
# 在minion端查看
[root@salt01 salt]# pwd
/var/cache/salt
[root@salt01 salt]# ll
total 0
drwxr-xr-x 6 root root 103 Dec 11 23:52 minion
[root@salt01 salt]# tree
.
└── minion
    ├── accumulator
    ├── extmods
    ├── files
    │   └── base
    │       └── web
    │           └── apache.sls
    ├── highstate.cache.p
    ├── proc
    └── sls.p

7 directories, 3 files

Saltstack_使用指南03_配置管理

4.3. 执行结果信息讲解

# 执行返回结果是无序的
[root@salt100 ~]# salt 'salt0*' state.sls web.apache 
salt02:  # salt02执行结果信息
----------
          ID: apache-install  # apache.sls 中自定的ID【名称】
    Function: pkg.installed
        Name: httpd
      Result: True
     Comment: The following packages were installed/updated: httpd
     Started: 23:51:46.604986
    Duration: 30335.469 ms
     Changes:   
              ----------
              httpd:
                  ----------
                  new:
                      2.4.6-88.el7.centos
                  old:
              httpd-tools:
                  ----------
                  new:
                      2.4.6-88.el7.centos
                  old:
              mailcap:
                  ----------
                  new:
                      2.1.41-2.el7
                  old:
----------
          ID: apache-install
    Function: pkg.installed
        Name: httpd-devel
      Result: True
     Comment: The following packages were installed/updated: httpd-devel
     Started: 23:52:16.965844
    Duration: 6661.51 ms
     Changes:   
              ----------
              apr-devel:
                  ----------
                  new:
                      1.4.8-3.el7_4.1
                  old:
              apr-util-devel:
                  ----------
                  new:
                      1.5.2-6.el7
                  old:
              cyrus-sasl:
                  ----------
                  new:
                      2.1.26-23.el7
                  old:
              cyrus-sasl-devel:
                  ----------
                  new:
                      2.1.26-23.el7
                  old:
              expat-devel:
                  ----------
                  new:
                      2.1.0-10.el7_3
                  old:
              httpd-devel:
                  ----------
                  new:
                      2.4.6-88.el7.centos
                  old:
              libdb-devel:
                  ----------
                  new:
                      5.3.21-24.el7
                  old:
              openldap:
                  ----------
                  new:
                      2.4.44-20.el7
                  old:
                      2.4.44-13.el7
              openldap-devel:
                  ----------
                  new:
                      2.4.44-20.el7
                  old:
----------
          ID: apache-service
    Function: service.running
        Name: httpd
      Result: True
     Comment: Service httpd has been enabled, and is running
     Started: 23:52:24.619598
    Duration: 314.737 ms
     Changes:   
              ----------
              httpd:
                  True

Summary for salt02
------------
Succeeded: 3 (changed=3)
Failed:    0
------------
Total states run:     3
Total run time:  37.312 s
salt01:  # salt01执行结果信息
………………
salt03:  # salt03执行结果信息
----------
………………

5. Salt高级状态管理

生产环境使用,注意事项:
1、执行时不能使用 '*' ,所有minion执行
2、不能直接执行,要先 test=True;

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

默认file_roots的位置
Saltstack_使用指南03_配置管理
不用修改配置文件,默认即可。

5.2. 编写top.sls文件

[root@salt100 salt]# pwd
/srv/salt
[root@salt100 salt]# tree
.
├── top.sls
└── web
    └── apache.sls

1 directory, 2 files
[root@salt100 salt]# cat top.sls 
base:
  # 使用通配符
  'salt0*':
    - web.apache
    # - web.nginx  # 可以有多个
  # 指定具体minion
  'salt03':
    - web.apache

5.3. 执行高级状态

[root@salt100 ~]# salt 'salt01' state.highstate test=True  # 必须先执行这个
………………
# 原因:防止自己手动改了minion机器上组件的配置信息,但是没有同步到salt;
# 结果直接执行后,又改回去了。
[root@salt100 ~]# salt 'salt01' state.highstate  # 执行高级状态,通过top.sls 去查找
………………

转载于:https://blog.51cto.com/9410445/2369673

相关文章:

  • Python:游戏:写一个和 XP 上一模一样的“扫雷”
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 一墙之隔-看向世界和直面速度与激情
  • 金山云最新财报:Q4营收7.27亿,同比增长81%
  • STM32 HAL库学习系列第2篇 GPIO配置
  • IntelliJ IDEA 2019.1 正式发布,“JetBrains 全家桶”齐更新
  • 深入学习MySQL事务:ACID特性的实现原理
  • Promise异步编程整理
  • Linux 非正常关闭配置文件解决方法
  • 【译】浏览器如何工作:在现代web浏览器场景的之下
  • 试题 C: 数列求值 蓝桥杯
  • 当遇到css布局,你在考虑什么?
  • PyCharm 2019.1.1 RC 发布
  • 对话Ruby创始人松本行弘、阿里高级技术专家朴灵!
  • 删除Oracle用户及表空间
  • go append函数以及写入
  • Javascript 原型链
  • node入门
  • Python学习之路13-记分
  • React的组件模式
  • Webpack 4 学习01(基础配置)
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 前端
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 三分钟教你同步 Visual Studio Code 设置
  • 听说你叫Java(二)–Servlet请求
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 项目实战-Api的解决方案
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 走向全栈之MongoDB的使用
  • 阿里云服务器如何修改远程端口?
  • (第一天)包装对象、作用域、创建对象
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)ABI是什么
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)linux 命令大全
  • (转载)OpenStack Hacker养成指南
  • .FileZilla的使用和主动模式被动模式介绍
  • .Net mvc总结
  • .net访问oracle数据库性能问题
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @RequestBody与@ResponseBody的使用
  • @RestController注解的使用
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [145] 二叉树的后序遍历 js
  • [Android]通过PhoneLookup读取所有电话号码
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [c++] 单例模式 + cyberrt TimingWheel 单例分析
  • [C++] 多线程编程-thread::yield()-sleep_for()