Saltstack_使用指南03_配置管理
时间:2022-07-26
本文章向大家介绍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 ………………
- 微信快速开发框架(八)-- V2.3--增加语音识别及网页获取用户信息,代码已更新至Github
- 微信公众平台快速开发框架 For Core 2.0 beta –JCSoft.WX.Core 5.2.0 beta发布
- Android系统层Watchdog机制源码分析
- 算法之插入排序
- Android Studio环境下搭建ReactNative
- Android实现两个ScrollView互相联动,同步滚动的效果
- 一个可以拖动的自定义Gridview代码
- android图片加载库Glide
- 密码最短长度为7,其中必须包含以下非字母数字字符1 完美解决方案
- android开发性能分析
- url带中文参数显示乱码的问题
- 转换程序的一些问题:设置为 OFF 时,不能为表 'Test' 中的标识列插入显式值。8cad0260
- JQuery 对控件的事件操作
- 流畅地HtmlHelper-Asp.Net MVC
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 安防视频监控系统视频上云解决方案EasyCVR音频基础知识介绍
- 安防视频监控系统视频上云解决方案EasyCVR语音转发功能音频数据打包发送流程介绍
- 视频上云/安防视频融合平台/安防视频云服务EasyCVR通道播放界面出现样式重叠如何修正?
- 什么是MySQL数据库?看这一篇干货文章就够了!
- 折线图
- 雷达图
- Cypress系列(49)- invoke() 命令详解
- java线程池(三):ThreadPoolExecutor源码分析
- 社会工程学
- msf之木马程序
- 快速学习-Saturn用户的认证与授权
- 快速学习-Saturn创建作业
- 快速学习-Saturn作业编排
- 快速学习-NPM官方文档(英文版)
- 快速学习-Jenkins CLI QuickStart