Saltstack_使用指南11_配置管理-状态之间依赖关系
1. 说明:
下文的案例是根据上一篇文章进行的修改。因此请优先读取上一篇文章内容《Saltstack_10_配置管理-状态模块》
并且目录进行了变化,从 /srv/salt/lamp 变为了 /srv/salt/lamp2 。
另外:下文没有根据模块编写,而是根据服务进行编写的。其中数据库也是单独部署的。
2. 主机规划
服务器名称 | 操作系统版本 | 内网IP | 外网IP(模拟) | Hostname | 部署模块 |
---|---|---|---|---|---|
salt100 | CentOS7.5 | 172.16.1.100 | 10.0.0.100 | salt100 | salt-master、salt-minion |
salt01 | CentOS7.5 | 172.16.1.11 | 10.0.0.11 | salt01 | salt-minion |
salt02 | CentOS7.5 | 172.16.1.12 | 10.0.0.12 | salt02 | salt-minion |
salt03 | CentOS7.5 | 172.16.1.13 | 10.0.0.13 | salt03 | salt-minion |
状态模块文档
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、我依赖谁 require 2、谁依赖我【我被谁依赖】 require_in3、我监控谁 watch # 例如:如果配置文件有修改,那么会重载、重启服务 4、谁监控我【我被谁监控】 watch_in # 如果配置文件有修改,那么会重载、重启服务 5、我引用谁 include6、我扩展谁 extend如何编写SLS技巧:1、按状态分类 如果单独使用,很清晰2、按服务分类 可以被其他的SLS include。例如:LNMP include mysql 的服务 【生产优先使用】
4. 依赖关系案例
4.1. 部署架构
服务器名称 | 操作系统版本 | 内网IP | 外网IP(模拟) | Hostname | 部署模块【通过salt部署】 |
---|---|---|---|---|---|
salt100 | CentOS7.5 | 172.16.1.100 | 10.0.0.100 | salt100 | mariadb |
salt01 | CentOS7.5 | 172.16.1.11 | 10.0.0.11 | salt01 | httpd、PHP |
salt02 | CentOS7.5 | 172.16.1.12 | 10.0.0.12 | salt02 | httpd、PHP |
salt03 | CentOS7.5 | 172.16.1.13 | 10.0.0.13 | salt03 | httpd、PHP |
4.2. Apache和PHP的SLS【正向依赖】
[root@salt100 lamp2]# pwd # 所在目录
/srv/salt/lamp2
[root@salt100 lamp2]# ll
total 16
-rw-r--r-- 1 root root 599 Dec 31 15:27 apache.sls
drwxr-xr-x 2 root root 53 Dec 31 15:50 file
-rw-r--r-- 1 root root 41 Dec 31 15:49 init.sls
-rw-r--r-- 1 root root 563 Dec 31 15:42 mariadb.sls # 单独使用
-rw-r--r-- 1 root root 346 Dec 31 15:31 php.sls
[root@salt100 lamp2]# ll file/ # 涉及的配置文件
total 80
-rw-r--r-- 1 root root 11786 Dec 31 15:50 httpd.conf
-rw-r--r-- 1 root root 671 Dec 31 15:43 my.cnf
-rw-r--r-- 1 root root 64945 Oct 31 03:33 php.ini
[root@salt100 lamp2]# cat init.sls
include: # 我包含谁- lamp2.apache- lamp2.php[root@salt100 lamp2]# cat apache.sls
apache-service:pkg.installed:- name: httpdfile.managed:- name: /etc/httpd/conf/httpd.conf- source: salt://lamp2/file/httpd.conf- user: root- gourp: root- mode: 644- 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-mbstringfile.managed:- name: /etc/php.ini- source: salt://lamp2/file/php.ini- user: root- group: root- mode: 644- 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 16
-rw-r--r-- 1 root root 599 Dec 31 15:27 apache.sls
drwxr-xr-x 2 root root 53 Dec 31 15:50 file
-rw-r--r-- 1 root root 41 Dec 31 15:49 init.sls
-rw-r--r-- 1 root root 563 Dec 31 15:42 mariadb.sls # 单独使用
-rw-r--r-- 1 root root 346 Dec 31 15:31 php.sls
[root@salt100 lamp2]# ll file/ # 涉及的配置文件
total 80
-rw-r--r-- 1 root root 11786 Dec 31 15:50 httpd.conf
-rw-r--r-- 1 root root 671 Dec 31 15:43 my.cnf
-rw-r--r-- 1 root root 64945 Oct 31 03:33 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-servicefile.managed:- name: /etc/my.cnf- source: salt://lamp2/file/my.cnf- user: root- group: root- mode: 644- backup: minion- watch_in: # 谁监控我「我被谁监控」- service: mariadb-serviceservice.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_配置管理-状态之间依赖关系相关推荐
- J2EE高级开发框架小课程之Spring框架2——Spring容器作用域,生命周期,Spring管理对象之间依赖关系
Spring容器作用域 Spring创建对象的作用域:Spring在创建对象时,默认只创建一个(单例模式) scope: singleton(默认 单例) 构造器就一次,结果true prototyp ...
- 请你简要说明一下线程的基本状态以及状态之间的关系?
Running表示运行状态, Runnable表示就绪状态,万事俱备,只欠CPU: Blocked表示阻塞状态,阻塞状态又有多种情况,可能是因为调用wait()方法进入等待池,也可能是因为执行同步方法 ...
- IDEA以UML图表方式查看maven项目pom文件中全局及部分jar之间依赖关系
以其中一个pom.xml文件为例,pom文件下右键,选择diagrams--show dependencies,当然还可以查看局部关系,及删除某个模块功能
- Saltstack_使用指南17_salt-ssh
1. 主机规划 salt 版本 1 [root@salt100 ~]# salt --version 2 salt 2018.3.3 (Oxygen) 3 [root@salt100 ~]# salt ...
- Android注解使用之Dagger2实现项目依赖关系解耦
Dagger2 一句话:一款快速的注解框架,应用于Android.Java,由 Google 开发和维护,是 Square 的 Dagger 项目的分支. gitHub:https://github. ...
- 使用pyecharts绘制系统依赖关系图
使用pyecharts绘制系统依赖关系图 背景介绍 近期梳理了公司内部系统之间的数据关系,得到了多个excel格式的统计文件,每个文件包含了该系统自身数据清单.依赖的其他系统的数据清单.对其他系统供应 ...
- 【面向对象编程】(3) 类之间的交互,依赖关系,关联关系
各位同学好,今天和大家分享一下面向对象编程中,类之间的交互,类之间的依赖关系和关联关系.有不明白的可见前一章节:https://blog.csdn.net/dgvv4/article/details/ ...
- Prism 文档 第三章 管理组件之间的依赖关系
第3章:管理组件之间的依赖关系 基于Prism库的复合应用程 ...
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什 ...
- Gradle 2.0 用户指南翻译——第五十章. 依赖管理
本文禁止w3cschool转载! 翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc . 本文翻译所在分支:https://github.com/m ...
最新文章
- 人民日报钟声:以和平合作守护世界安全
- 第二节 MATLAB中图像数据导入、导出和转换
- 天翼云从业认证(3.2)天翼云存储产品
- MybatisPlus中insert方法与insertAllColumn方法的区别
- java获取当前周一_Java互联网架构-Spring IOC源码分析
- boost::contract模块实现条件是否的测试程序
- 解决toolbar左边空出一部分的问题
- mysql5.7修改root密码_七小服公开课EMC isilon修改丢失的root密码
- 20 PP配置-生产计划-定义计划订单计划参数
- NLP - 新闻文本分类-baseline
- oracle clusterware 11g,Oracle11gR2clusterware启动顺序
- 我如何开始使用Linux
- 华为开会有“原则”?企业的成功都从会议开始
- 盘点企业更换邮件服务器原因
- java filesearcher_Java Object Searcher | java内存对象搜索辅助工具
- 数学之美系列八-- 贾里尼克的故事和现代语言处理
- Python下time模块和datetime模块的使用
- 移动SI:如何开拓企业客户市场?
- C# AO/ArcEngine 栅格数据总结
- android一键 iphone,流畅吃鸡最全教程来了:安卓iPhone一键解锁最高画质