Saltstack_使用指南11_配置管理-状态之间依赖关系
1. 说明
下文的案例是根据上一篇文章进行的修改。因此请优先读取上一篇文章内容《Saltstack_10_配置管理-状态模块》
并且目录进行了变化,从 /srv/salt/lamp 变为了 /srv/salt/lamp2 。
另外:下文没有根据模块编写,而是根据服务进行编写的。其中数据库也是单独部署的。
2. 主机规划

salt 版本
[root@salt100 ~]# salt --version
salt 2018.3. (Oxygen)
[root@salt100 ~]# salt-minion --version
salt-minion 2018.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. 状态之间的依赖关系
状态间关系:
、我依赖谁 require
、谁依赖我【我被谁依赖】 require_in 、我监控谁 watch # 例如:如果配置文件有修改,那么会重载、重启服务
、谁监控我【我被谁监控】 watch_in # 如果配置文件有修改,那么会重载、重启服务 、我引用谁 include
、我扩展谁 extend 如何编写SLS技巧:
、按状态分类 如果单独使用,很清晰
、按服务分类 可以被其他的SLS include。例如:LNMP include mysql 的服务 【生产优先使用】
4. 依赖关系案例
4.1. 部署架构

4.2. Apache和PHP的SLS【正向依赖】
[root@salt100 lamp2]# pwd # 所在目录
/srv/salt/lamp2
[root@salt100 lamp2]# ll
total
-rw-r--r-- root root Dec : apache.sls
drwxr-xr-x root root Dec : file
-rw-r--r-- root root Dec : init.sls
-rw-r--r-- root root Dec : mariadb.sls # 单独使用
-rw-r--r-- root root Dec : php.sls
[root@salt100 lamp2]# ll file/ # 涉及的配置文件
total
-rw-r--r-- root root Dec : httpd.conf
-rw-r--r-- root root Dec : my.cnf
-rw-r--r-- root root Oct : php.ini
[root@salt100 lamp2]# cat init.sls
include: # 我包含谁
- lamp2.apache
- lamp2.php [root@salt100 lamp2]# cat apache.sls
apache-service:
pkg.installed:
- name: httpd file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://lamp2/file/httpd.conf
- user: root
- gourp: root
- mode:
- backup: minion
- require: # 我依赖谁
- pkg: apache-service # 依赖 apache-service 中 pkg 的安装包 service.running:
- name: httpd
- enable: True
- reload: True
- require: # 我依赖谁
- pkg: apache-service
- watch: # 我监控谁
# 一旦发生变化,就重加载服务
- file: apache-service # 监控 apache-service 中 file 的文件 [root@salt100 lamp2]# cat php.sls
php-service:
pkg.installed:
- name: php
- name: php-devel
- name: mariadb
- name: php-mysql
- name: php-cli
- name: php-mbstring file.managed:
- name: /etc/php.ini
- source: salt://lamp2/file/php.ini
- user: root
- group: root
- mode:
- backup: minion
- require: # 我依赖谁
- pkg: php-service
4.2.1. 执行SLS
[root@salt100 lamp2]# salt 'salt01' state.sls lamp2.init test=True # 测试是否可行 【查看返回信息】
[root@salt100 lamp2]# salt 'salt01' state.sls lamp2.init # 查看执行结果
[root@salt100 lamp2]# salt 'salt0*' test.ping # 将进行批量执行----查看目标选择是否正确
salt01:
True
salt02:
True
salt03:
True
[root@salt100 lamp2]# salt 'salt0*' state.sls lamp2.init # 批量执行【并查看执行结果】
4.3. mariadb 的 SLS 【反向依赖】
[root@salt100 lamp2]# pwd # 所在目录
/srv/salt/lamp2
[root@salt100 lamp2]# ll
total
-rw-r--r-- root root Dec : apache.sls
drwxr-xr-x root root Dec : file
-rw-r--r-- root root Dec : init.sls
-rw-r--r-- root root Dec : mariadb.sls # 单独使用
-rw-r--r-- root root Dec : php.sls
[root@salt100 lamp2]# ll file/ # 涉及的配置文件
total
-rw-r--r-- root root Dec : httpd.conf
-rw-r--r-- root root Dec : my.cnf
-rw-r--r-- root root Oct : php.ini
[root@salt100 lamp2]# cat mariadb.sls
mariadb-service:
pkg.installed:
- name: mariadb
- name: mariadb-server
- require_in: # 谁依赖我「我被谁依赖」
- file: mariadb-service
- watch_in: # 谁监控我「我被谁监控」
- service: mariadb-service file.managed:
- name: /etc/my.cnf
- source: salt://lamp2/file/my.cnf
- user: root
- group: root
- mode:
- backup: minion
- watch_in: # 谁监控我「我被谁监控」
- service: mariadb-service service.running:
- name: mariadb.service
- enable: True
- restart: True
4.3.1. 执行SLS
[root@salt100 lamp2]# salt 'salt100' state.sls lamp2.mariadb test=True # 测试是否可行 【查看返回信息】
[root@salt100 lamp2]# [root@salt100 lamp2]# salt 'salt100' state.sls lamp2.mariadb # 查看执行结果

Saltstack_使用指南11_配置管理-状态之间依赖关系的更多相关文章
- Saltstack_使用指南10_配置管理-状态模块
1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...
- Saltstack_使用指南12_配置管理-jinja模板
1. 说明 下文的案例是根据上一篇文章进行的修改.因此请优先读取上一章博文内容<Saltstack_使用指南11_配置管理-状态之间依赖关系> 2. 主机规划 salt 版本 [root@ ...
- Gradle用户指南(章8:依赖关系管理基础)
章8:依赖关系管理基础 本章将介绍一些gradle依赖关系管理的基础 什么是依赖关系管理? 简略的说,依赖管理是由两部分组成的.首先,gradle需要知道你要构建或者运行的项目,以便找到它们.我们将这 ...
- Saltstack_使用指南03_配置管理
1. 主机规划 注意事项 修改了master或者minion的配置文件,那么必须重启对应的服务. 2. 了解YAML 具体地址 https://docs.saltstack.com/en/latest ...
- SaltStack配置管理--状态间的关系(六)
一.include的引用 需求场景:用于含有多个SLS的状态,使用include可以进行多个状态的组合,将安装apache,php,mysql集合在一个sls中 [root@7mini-node1 p ...
- Jenkins job之间依赖关系配置(联动构建)
使用场景: 想要在某APP打新包之后,立即执行自动化测试的job来验证该新包.比如Job A 执行完执行Job B ,如下图所示,如何建立依赖呢? 主要有两种方法: 1.配置上游依赖: 2.配置下游依 ...
- Jenkins-job之间依赖关系配置
使用场景: 想要在某APP打新包之后,立即执行自动化测试的job来验证该新包. 比如Job A 执行完执行Job B ,如下图所示,如何建立依赖呢? 1.配置上游依赖 构建触发器-配置如下信息: 选择 ...
- Saltstack_使用指南17_salt-ssh
1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...
- Android注解使用之Dagger2实现项目依赖关系解耦
前言: 最近牵头发起公司app的重构工作,如何通过重构让项目的耦合降低.开发效率提高,一直是我努力的方向,今天来学习一下一个注解框架Dagger2,然后看看如何使用它来降低项目的耦合. Dagger2 ...
随机推荐
- ant 打包脚本
现在很多人都用ant脚本来进行打包,下面就介绍一下这个打包工具常见的用法.以及脚本如何编写 <!-- 定义任务,清空任务:清空原有的classes目录,重新创建 --> <targe ...
- [转]Workbook.SaveAs method (Excel) Password
本文转自:https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.saveas Saves changes to the work ...
- 剑指offer 24:二叉搜索树的后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路 后序遍历,顾名思义根节点位于尾部,故可将 ...
- Doxygen程序注释转换说明文档
Doxygen使用 https://www.jianshu.com/p/9464eca6aefe
- mago3DJS 应用
用于3D多块可视化的开源JavaScript库 生成3D GIS平台,集成和可视化AEC(建筑,工程,建筑)区域和传统的3D空间信息(3D GIS).将AEC和3D GIS集成到Web浏览器中,室内, ...
- 利用webpack打包自己的第一个Vue组件库
先说一下这篇文章的诞生原因.我们有一个这样的项目,类似或者说就是一个仪表板-Dashboard,其中的各个部分可能不是一个部门写的……我们需要提供拖拽布局(大小和位置)和展示的能力.要实现这样一个功能 ...
- 201871010116-祁英红《面向对象程序设计(java)》第十五周学习总结
博文正文开头格式:(2分) 项目 内容 <面向对象程序设计(java)> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://ww ...
- 一天两道PAT(2)1005,1006
今天的pat1006没什么好说的.就记录一下1005的状况.先上题目. 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重 ...
- python第一次作业-Numpy练习
1.创建一个边界值为1而内部都是0的数组,图例如下:[提示:]解此题可以先把所有值都设置为1,这是大正方形:其次,把边界除外小正方形全部设置为0.本题用到numpy的切片原理.多维数组同样遵循x[st ...
- Note | 北航《网络安全》复习笔记
目录 1. 引言 2. 计算机网络基础 基础知识 考点 3. Internet协议的安全性 基础知识 考点 4. 单钥密码体制 基础知识 考点 5. 双钥密码体制 基础知识 考点 6. 消息认证与杂凑 ...