自己琢磨的好几天就是光看资料,还是没琢磨明白,建议大家一定 要亲自动手在机器上测试下。
我们以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使用相关推荐

  1. 理解AMD ,CMD,CommonJS规范

    https://blog.csdn.net/xcymorningsun/article/details/52709608 理解AMD ,CMD,CommonJS规范 2016年09月30日 10:33 ...

  2. salt java 日志 乱码_Saltstack执行cmd.run重启tomcat后出现日志乱码(15)

    Saltstack使用的cmd.run调用的是核心模块cmdmod.py,下面我们来看一下cmdmod.py模块的源码: cat /usr/lib/python2.6/site-packages/sa ...

  3. 不理解话里真正包含的意思

    村上春树说:如若相爱,便携手到老:如若错过,便护他安好.看到这句话,我一个人偷偷地动情了.并不是因为这句话本身有多煽情,也不是因为在这句话里找到了什么慰藉的东西,只是因为一时突然的情不自禁.     ...

  4. 【高级】深入理解Word里的字号、行距、段距、间距、样式

    昨天领导交给我一份文档,让我帮忙修改一下.改完后最后一页只有单独的一行,打印出来不够美观.因此,我缩小了行距,把默认的单倍行距改为了固定值28磅.结果是,整个文档的确少了一页,原来最后一页的单独一行已 ...

  5. Android高级:内部类的理解,多态,run和start,wait和seelp,线程安全,堆和栈,synchronized 和volatile ,AsyncTask,Binder的机,view的原理

    目录 成员内部类.静态内部类.局部内部类和匿名内部类的理解,以及项目中的应用 哪些情况下的对象会被垃圾回收机制处理掉? Java中实现多态的机制是什么? String为什么要设计成不可变的? Obje ...

  6. go interface转int_32. 一篇文章理解 Go 里的函数

    大家好,我是明哥. 由于某些不可抗力,之前该专栏的所有内容都被删除了.因此之后的一段时间内,我会重新发布这些文章,先给已经看过的关注者提个醒. 本文原文:http://golang.iswbm.com ...

  7. go 函数名之前括号中的内容_2020 重学 Go 系列:09. 一篇文章理解 Go 里的函数

    1. 关于函数 函数是基于功能或 逻辑进行封装的可复用的代码结构.将一段功能复杂.很长的一段代码封装成多个代码片段(即函数),有助于提高代码可读性和可维护性. 在 Go 语言中,函数可以分为两种: 带 ...

  8. 十年测开如何理解自动化测试里的数据驱动、关键字驱动思路

    初次接触自动化测试时,对数据驱动和关键字驱动不甚理解,觉得有点故弄玄须,不就是参数和函数其嘛!其实其也体现了测试所不同与开发的一些特点(主要指系统测试),以及和对技术发展的脉络的展现. 01.录制/回 ...

  9. python如何得出数组里最大_如何理解Python里的字典dict?

    字典dict由键值key-value构成,具有较强的查询检索能力. 基本格式为: dict={key1:value1,key2:value2,......,keyn,valuen } 1.key由数字 ...

最新文章

  1. 「云端 JavaScript 漫游指南」
  2. c 语言 结构体的引用
  3. 基于知识图谱的行业问答系统搭建分几步?
  4. python人脸识别opencv_用python和opencv 做人脸识别
  5. 别太贪婪,这些技能能让你一辈子满足
  6. c语言三阶素数魔方阵,用C语言构造3*3素数魔方阵,即找出9个不大于500的素数并排成魔方阵。...
  7. 【Java】数组元素的赋值与输出
  8. RocksDB 6.0.1 发布,Facebook 推出的存储系统
  9. bzoj 3173: [Tjoi2013]最长上升子序列(离线二分+树状数组)
  10. Android app 页面加载统计工具
  11. 中国古代哲学 (基础知识)
  12. WPS如何在同一篇文档针对不同章节设置不同的页眉页脚
  13. ETERM航班销售控制指令
  14. PCB的作用及其包含的信息
  15. 分类--ROC 和曲线下面积
  16. GitHub上的项目受美国出口管制吗?
  17. dr.fone使用教程:如何修复iOS
  18. 整车CAN网络介绍---CAN--PT CAN--Chassis CAN--Body CAN--Info CAN
  19. 如何查看Linux系统的状态信息?
  20. 计算机 英语 文献翻译,计算机类外文文献翻译_1.doc

热门文章

  1. spring 之 BeanPostProcessor
  2. 微信公众平台开发之留言板
  3. linux 软件安装方式
  4. codeforces 111A/112C Petya and Inequiations
  5. PAT 00-自测1. 打印沙漏(20)
  6. python template engine
  7. Java8 Math新增方法
  8. 01-04 Linux常用命令-网络相关
  9. 计算机课实验报告收获体会,计算机实验报告总结.doc
  10. java jdbc 工具_JDBC 工具类