理解saltstack 里cmd.run 配合onlyif和unless使用
自己琢磨的好几天就是光看资料,还是没琢磨明白,建议大家一定 要亲自动手在机器上测试下。
我们以saltstack管理tomcat启动与重启为例子:
master主机上目录结构如下
[root@syl salt]# pwd
/srv/salt
[root@syl salt]# tree
.
├── app
│ ├── files
│ │ └── server.xml
│ └── tomcat.sls
└── prod├── services└── states5 directories, 2 files
tomcat.sls状态文件如下
tomcat-config-copy:file.managed:- name: /usr/local/tomcat/conf/server.xml- source: salt://app/files/server.xml- user: root- group: root- mode: 755- template: jinja- defualts:PORT: 8081tomcat-service-restart:cmd.run:- name: netstat -nltp|grep 8081|awk -F ' ' '{print $7}'|awk -F '/' '{print $1}'|xargs kill -9 && /usr/local/tomcat/bin/startup.sh#onlyif表示只要我下面的条件为真(True),则上面cmd.run的这条命令就执行,如果onlyif下面的执行语句为假(false),则cmd.run的这条命令就不执行- onlyif: curl http://47.100.24.206:8081/ #onlyif这里用test -e /usr/local/tomcat/conf/server.xml测试这个文件是否存在也是可以
#而把onlyif换成unless则正好相反,换成unless之后,unless下面的执行语句如果执行成功返回为真(True),则cmd.run下的这条语句就不执行。
转载于:https://blog.51cto.com/song1230/2343579
理解saltstack 里cmd.run 配合onlyif和unless使用相关推荐
- 理解AMD ,CMD,CommonJS规范
https://blog.csdn.net/xcymorningsun/article/details/52709608 理解AMD ,CMD,CommonJS规范 2016年09月30日 10:33 ...
- salt java 日志 乱码_Saltstack执行cmd.run重启tomcat后出现日志乱码(15)
Saltstack使用的cmd.run调用的是核心模块cmdmod.py,下面我们来看一下cmdmod.py模块的源码: cat /usr/lib/python2.6/site-packages/sa ...
- 不理解话里真正包含的意思
村上春树说:如若相爱,便携手到老:如若错过,便护他安好.看到这句话,我一个人偷偷地动情了.并不是因为这句话本身有多煽情,也不是因为在这句话里找到了什么慰藉的东西,只是因为一时突然的情不自禁. ...
- 【高级】深入理解Word里的字号、行距、段距、间距、样式
昨天领导交给我一份文档,让我帮忙修改一下.改完后最后一页只有单独的一行,打印出来不够美观.因此,我缩小了行距,把默认的单倍行距改为了固定值28磅.结果是,整个文档的确少了一页,原来最后一页的单独一行已 ...
- Android高级:内部类的理解,多态,run和start,wait和seelp,线程安全,堆和栈,synchronized 和volatile ,AsyncTask,Binder的机,view的原理
目录 成员内部类.静态内部类.局部内部类和匿名内部类的理解,以及项目中的应用 哪些情况下的对象会被垃圾回收机制处理掉? Java中实现多态的机制是什么? String为什么要设计成不可变的? Obje ...
- go interface转int_32. 一篇文章理解 Go 里的函数
大家好,我是明哥. 由于某些不可抗力,之前该专栏的所有内容都被删除了.因此之后的一段时间内,我会重新发布这些文章,先给已经看过的关注者提个醒. 本文原文:http://golang.iswbm.com ...
- go 函数名之前括号中的内容_2020 重学 Go 系列:09. 一篇文章理解 Go 里的函数
1. 关于函数 函数是基于功能或 逻辑进行封装的可复用的代码结构.将一段功能复杂.很长的一段代码封装成多个代码片段(即函数),有助于提高代码可读性和可维护性. 在 Go 语言中,函数可以分为两种: 带 ...
- 十年测开如何理解自动化测试里的数据驱动、关键字驱动思路
初次接触自动化测试时,对数据驱动和关键字驱动不甚理解,觉得有点故弄玄须,不就是参数和函数其嘛!其实其也体现了测试所不同与开发的一些特点(主要指系统测试),以及和对技术发展的脉络的展现. 01.录制/回 ...
- python如何得出数组里最大_如何理解Python里的字典dict?
字典dict由键值key-value构成,具有较强的查询检索能力. 基本格式为: dict={key1:value1,key2:value2,......,keyn,valuen } 1.key由数字 ...
最新文章
- 「云端 JavaScript 漫游指南」
- c 语言 结构体的引用
- 基于知识图谱的行业问答系统搭建分几步?
- python人脸识别opencv_用python和opencv 做人脸识别
- 别太贪婪,这些技能能让你一辈子满足
- c语言三阶素数魔方阵,用C语言构造3*3素数魔方阵,即找出9个不大于500的素数并排成魔方阵。...
- 【Java】数组元素的赋值与输出
- RocksDB 6.0.1 发布,Facebook 推出的存储系统
- bzoj 3173: [Tjoi2013]最长上升子序列(离线二分+树状数组)
- Android app 页面加载统计工具
- 中国古代哲学 (基础知识)
- WPS如何在同一篇文档针对不同章节设置不同的页眉页脚
- ETERM航班销售控制指令
- PCB的作用及其包含的信息
- 分类--ROC 和曲线下面积
- GitHub上的项目受美国出口管制吗?
- dr.fone使用教程:如何修复iOS
- 整车CAN网络介绍---CAN--PT CAN--Chassis CAN--Body CAN--Info CAN
- 如何查看Linux系统的状态信息?
- 计算机 英语 文献翻译,计算机类外文文献翻译_1.doc