SaltStack配置管理-状态间关系
include包含
上篇安装LAMP环境是一个个环境安装,可以通过include模块全部安装

lamp.sls
include:
- apache.init
- php.init
- mysql.init
安装
salt -S '192.168.56.12' state.sls lamp saltenv=prod
也可以直接写在top.sls里面使用高级状态执行 prod是环境linux-node2.example.com是主机ID

扩展extend
需求:需要在一台主机安装php包并且只在这台主机新安装一个包php-mbstring但是不要修改原sls文件
修改lamp.sls文件增加扩展
include:
- apache.init
- php.init
- mysql.init extend:
php-install:
pkg.installed:
- name: php-mbstring

相当于追加了红色部分的安装,在没有修改原文件的情况下追加安装包
require需求依赖
需求:apache安装的时候假如配置文件有错误就不执行启动操作
修改sls文件添加 file是模块名apache-config是模块ID 同理pkg也是

如果把配置文件改错写一个不存在的httpd配置文件执行会报错
报错1 没有发现配置文件
报错2 require失败所以没有启动

require-in我被谁依赖(两个记住一个即可)

watch我观察谁
如果文件修改则重载或者重启

执行状态发现文件变化重载(不加reload就是重启restart)

watch_in我被谁观察(两个记住一个即可)

状态间的条件判断
需求:网页在进入admin文件夹的时候需要输入用户名和密码
修改apache配置文件/etc/httpd/conf/httpd.conf添加需要加密的文件夹
<Directory "/var/www/html/admin" >
AllowOverride All
Order allow,deny
Allow from all
AuthType Basic
AuthName "hehe"
AuthUserFile /etc/httpd/conf/htpasswd_file
Require user admin
</Directory>

以非交换的方式设置用户名和密码
htpasswd -bc /etc/httpd/conf/htpasswd_file admin admin
查看

查看设置的需要加密的文件

输入地址访问需要输入刚刚设置的用户名和密码


在sls里面实现编辑apache的init文件
apache-install:
pkg.installed:
- name: httpd apache-config:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://apache/files/httpd.conf
- user: root
- group: root
- mode: 644
- watch_in:
- service: apache-service apache-auth:
pkg.installed:
- name: httpd-tools
cmd.run:
- name: htpasswd -bc /etc/httpd/conf/htpasswd_file admin admin
- unless: test -f /etc/httpd/conf/htpasswd_file apache-service:
service.running:
- name: httpd
- enable: True
- reload: True

安装httpd-tools包是htpasswd命令执行需要该包
unless是判断添加如果为真及加密文件存在则不执行以免重复添加
验证
执行第一次添加

再次执行判断条件为真就不添加该密码文件

SaltStack配置管理-状态间关系的更多相关文章
- SaltStack配置管理--状态间的关系(六)
一.include的引用 需求场景:用于含有多个SLS的状态,使用include可以进行多个状态的组合,将安装apache,php,mysql集合在一个sls中 [root@7mini-node1 p ...
- SaltStack中状态间关系unless、onlyif、require、require_in、watch、watch_in
1.unless 检查的命令,仅当unless选项指向的命令返回值为false时才执行name定义的命令 cmd.run: {% "] %} - name: 'nohup sh /alida ...
- 架构师成长之路5.5-Saltstack配置管理(状态间关系)
点击架构师成长之路 架构师成长之路5.5-Saltstack配置管理(状态间关系) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要FUNC ...
- SaltStack配置管理-LAMP状态设计
上一篇:SaltStack之Salt-ssh 配置文件模板 apache: pkg.installed: - name: httpd service.running: - name: httpd /e ...
- SaltStack配置管理-jinja模板
上一篇:SaltStack配置管理-状态间关系 需求:需要apache配置文件里面监听的端口是每个minion本地的地址 saltstack默认的模板是jinjia模板 参考文档:http://doc ...
- saltStack 状态模块(状态间的关系)
unless onlyif:状态间的条件判断,主要用于cmd状态模块 常用方法: onlyif:检查的命令,仅当'onlyif' 选项指向的命令返回true时才执行name 定义的命 unle ...
- SaltStack配置管理之状态模块和jinja2(五)
官方文档 https://docs.saltstack.com/en/latest/topics/states/index.html 配置管理之SLS Salt State SLS描述文件(YAM ...
- Saltstack_使用指南11_配置管理-状态之间依赖关系
1. 说明 下文的案例是根据上一篇文章进行的修改.因此请优先读取上一篇文章内容<Saltstack_10_配置管理-状态模块> 并且目录进行了变化,从 /srv/salt/lamp 变为了 ...
- UML 有关类图知识及类间关系
原文链接:https://blog.csdn.net/mj_ww/article/details/53020346 1. 类的含义 类图(Class diagram)显示了系统的静态结构,而系统的静态 ...
随机推荐
- 本地Git仓库和远程仓库的创建及关联
新建一个远程的仓库(空的) 新建一个远程仓库 设置远程仓库的名字,并创建 设置仓库名 切记:如果我们在创建远程仓库的时候添加了README和.ignore等文件,我们在后面关联仓库后,需要先执行pul ...
- 用python批量执行VBA代码
先说下背景环境 1. 公司需要问卷调查,有两份问卷, 1)是spss问卷,2)是excel问卷.spss问卷数据不全,但有各种标签, excel呢, 生成的数据直接把选项变成了值 2. 现在需要把ex ...
- 【转】Microsoft .Net Remoting之Remoting事件处理全接触
Remoting事件处理全接触 前言:在Remoting中处理事件其实并不复杂,但其中有些技巧需要你去挖掘出来.正是这些技巧,仿佛森严的壁垒,让许多人望而生畏,或者是不知所谓,最后放弃了事件在Remo ...
- vnc 多用户登录
1, 创建新用户: $ useradd tom $ passwd tom 2, 登录到tom账户,创建vnc实例: $ su tom$ vncserver 这时可以看看~/.vnc/目录下,有一些如 ...
- js unicode处理
//岗位详细界面 var str="1.\u000D\u21B52.\u000D\u21B53"; var pad = function() { var tbl = []; ret ...
- UltraEdit-32 查看编码
一直苦于无法判断文件的编码类型,现在发现一个方法,就是用强大的UltraEdit-32软件: UltraEdit-32的状态栏可以显示文件的编码类型,详细情况如下: ANSCI------------ ...
- 怎么用MathType编辑带圈字母
在用word公式编辑器MathType编辑公式时,里面涉及到很多的数学物理符号等等,这些符号或者是公式其实都可以利用MathType中的模板进行组合.在这些数学公式中,有时会有一些比较特殊的符号,它们 ...
- python--条件判断和循环--3
原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 一.if语句 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄, ...
- ubuntu 安装source insight
1. 首先安装wine sudo apt-get install wine 2.下载source insight 安装包(.exe) 3,将安装包放到已知的目录下. 4.在终端进行安装,wine Si ...
- 工作流JBPM_day01:7-使用流程变量
工作流JBPM_day01:7-使用流程变量 工作流就像流水线 对应数据库中的一张表 ProcessVariableTest.Java import java.util.List; import or ...