Saltstack_使用指南11_配置管理-状态之间依赖关系 4.1. 部署架构4.2. Apache和PHP的SLS【正向依赖】4.3. mariadb 的 SLS
时间:2022-07-26
本文章向大家介绍Saltstack_使用指南11_配置管理-状态之间依赖关系
4.1. 部署架构4.2. Apache和PHP的SLS【正向依赖】4.3. mariadb 的 SLS,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. 说明
下文的案例是根据上一篇文章进行的修改。因此请优先读取上一篇文章内容《Saltstack_10_配置管理-状态模块》
并且目录进行了变化,从 /srv/salt/lamp 变为了 /srv/salt/lamp2 。
另外:下文没有根据模块编写,而是根据服务进行编写的。其中数据库也是单独部署的。
2. 主机规划
salt 版本
1 [root@salt100 ~]# salt --version
2 salt 2018.3.3 (Oxygen)
3 [root@salt100 ~]# salt-minion --version
4 salt-minion 2018.3.3 (Oxygen)
状态模块文档
https://docs.saltstack.com/en/latest/ref/states/all/index.html
require 和 watch 文档
https://docs.saltstack.com/en/latest/topics/tutorials/states_pt2.html
include 和 extend 文档
https://docs.saltstack.com/en/latest/topics/tutorials/states_pt3.html
注意事项
修改了master或者minion的配置文件,那么必须重启对应的服务。
3. 状态之间的依赖关系
1 状态间关系:
2 1、我依赖谁 require
3 2、谁依赖我【我被谁依赖】 require_in
4
5 3、我监控谁 watch # 例如:如果配置文件有修改,那么会重载、重启服务
6 4、谁监控我【我被谁监控】 watch_in # 如果配置文件有修改,那么会重载、重启服务
7
8 5、我引用谁 include
9 6、我扩展谁 extend
10
11 如何编写SLS技巧:
12 1、按状态分类 如果单独使用,很清晰
13 2、按服务分类 可以被其他的SLS include。例如:LNMP include mysql 的服务 【生产优先使用】
4. 依赖关系案例
4.1. 部署架构
4.2. Apache和PHP的SLS【正向依赖】
1 [root@salt100 lamp2]# pwd # 所在目录
2 /srv/salt/lamp2
3 [root@salt100 lamp2]# ll
4 total 16
5 -rw-r--r-- 1 root root 599 Dec 31 15:27 apache.sls
6 drwxr-xr-x 2 root root 53 Dec 31 15:50 file
7 -rw-r--r-- 1 root root 41 Dec 31 15:49 init.sls
8 -rw-r--r-- 1 root root 563 Dec 31 15:42 mariadb.sls # 单独使用
9 -rw-r--r-- 1 root root 346 Dec 31 15:31 php.sls
10 [root@salt100 lamp2]# ll file/ # 涉及的配置文件
11 total 80
12 -rw-r--r-- 1 root root 11786 Dec 31 15:50 httpd.conf
13 -rw-r--r-- 1 root root 671 Dec 31 15:43 my.cnf
14 -rw-r--r-- 1 root root 64945 Oct 31 03:33 php.ini
15 [root@salt100 lamp2]# cat init.sls
16 include: # 我包含谁
17 - lamp2.apache
18 - lamp2.php
19
20 [root@salt100 lamp2]# cat apache.sls
21 apache-service:
22 pkg.installed:
23 - name: httpd
24
25 file.managed:
26 - name: /etc/httpd/conf/httpd.conf
27 - source: salt://lamp2/file/httpd.conf
28 - user: root
29 - gourp: root
30 - mode: 644
31 - backup: minion
32 - require: # 我依赖谁
33 - pkg: apache-service # 依赖 apache-service 中 pkg 的安装包
34
35 service.running:
36 - name: httpd
37 - enable: True
38 - reload: True
39 - require: # 我依赖谁
40 - pkg: apache-service
41 - watch: # 我监控谁
42 # 一旦发生变化,就重加载服务
43 - file: apache-service # 监控 apache-service 中 file 的文件
44
45 [root@salt100 lamp2]# cat php.sls
46 php-service:
47 pkg.installed:
48 - name: php
49 - name: php-devel
50 - name: mariadb
51 - name: php-mysql
52 - name: php-cli
53 - name: php-mbstring
54
55 file.managed:
56 - name: /etc/php.ini
57 - source: salt://lamp2/file/php.ini
58 - user: root
59 - group: root
60 - mode: 644
61 - backup: minion
62 - require: # 我依赖谁
63 - pkg: php-service
4.2.1. 执行SLS
1 [root@salt100 lamp2]# salt 'salt01' state.sls lamp2.init test=True # 测试是否可行 【查看返回信息】
2 [root@salt100 lamp2]# salt 'salt01' state.sls lamp2.init # 查看执行结果
3 [root@salt100 lamp2]# salt 'salt0*' test.ping # 将进行批量执行----查看目标选择是否正确
4 salt01:
5 True
6 salt02:
7 True
8 salt03:
9 True
10 [root@salt100 lamp2]# salt 'salt0*' state.sls lamp2.init # 批量执行【并查看执行结果】
4.3. mariadb 的 SLS 【反向依赖】
1 [root@salt100 lamp2]# pwd # 所在目录
2 /srv/salt/lamp2
3 [root@salt100 lamp2]# ll
4 total 16
5 -rw-r--r-- 1 root root 599 Dec 31 15:27 apache.sls
6 drwxr-xr-x 2 root root 53 Dec 31 15:50 file
7 -rw-r--r-- 1 root root 41 Dec 31 15:49 init.sls
8 -rw-r--r-- 1 root root 563 Dec 31 15:42 mariadb.sls # 单独使用
9 -rw-r--r-- 1 root root 346 Dec 31 15:31 php.sls
10 [root@salt100 lamp2]# ll file/ # 涉及的配置文件
11 total 80
12 -rw-r--r-- 1 root root 11786 Dec 31 15:50 httpd.conf
13 -rw-r--r-- 1 root root 671 Dec 31 15:43 my.cnf
14 -rw-r--r-- 1 root root 64945 Oct 31 03:33 php.ini
15 [root@salt100 lamp2]# cat mariadb.sls
16 mariadb-service:
17 pkg.installed:
18 - name: mariadb
19 - name: mariadb-server
20 - require_in: # 谁依赖我「我被谁依赖」
21 - file: mariadb-service
22 - watch_in: # 谁监控我「我被谁监控」
23 - service: mariadb-service
24
25 file.managed:
26 - name: /etc/my.cnf
27 - source: salt://lamp2/file/my.cnf
28 - user: root
29 - group: root
30 - mode: 644
31 - backup: minion
32 - watch_in: # 谁监控我「我被谁监控」
33 - service: mariadb-service
34
35 service.running:
36 - name: mariadb.service
37 - enable: True
38 - restart: True
4.3.1. 执行SLS
1 [root@salt100 lamp2]# salt 'salt100' state.sls lamp2.mariadb test=True # 测试是否可行 【查看返回信息】
2 [root@salt100 lamp2]# [root@salt100 lamp2]# salt 'salt100' state.sls lamp2.mariadb # 查看执行结果
- AutoFlowLayout-多功能流式布局与网格布局控件
- RBAC新解:基于资源的权限管理(Resource-Based Access Control)
- 基于开源项目搭建属于自己的技术堆栈
- Redis整合Spring项目搭建实例
- SpringMVC+Hibernate +MySql+ EasyUI实现POI导出Excel(二)
- Nginx+Tomcat+Redis负载均衡Session共享实现超级简单(CentOS6.9系统 Java版本)
- Apache Ignite——新一代数据库缓存系统
- 微信JSSDK接入Java版--步骤及问题处理和解决
- 微信企业号回调模式配置讲解 Java Servlet+Struts2版本 echostr校验失败解决
- Android Material Design系列之RecyclerView和CardView
- 在Linux安装ASP.Net Core的运行时(Runtime)
- 使用xUnit为.net core程序进行单元测试(下1)
- Otto开发初探——微服务依赖管理新利器
- Apache Eagle——eBay开源分布式实时Hadoop数据安全方案
- 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 数组属性和方法
- 《剑指 offer》刷题记录之:查找和排序
- numpy 计算路线距离
- 自然语言处理中的预训练模型(下)
- MySQL性能优化的最佳20+条经验
- 《剑指 offer》刷题记录之:回溯法
- 《剑指 offer》刷题记录之:动态规划与贪婪算法
- MySQL使用distinct去掉查询结果重复的记录
- R语言基于协方差的结构方程拟合的卡方检验
- 复制表
- R语言中小样本违反异方差性的线性回归
- 《剑指 offer》刷题记录之:位运算
- tf.train.batch 的偶尔乱序问题
- R语言中的生存分析Survival analysis晚期肺癌患者4例
- R语言异方差回归模型建模:用误差方差解释异方差
- R语言使用二元回归将序数数据建模为多元GLM