saltstack的一些sls巧用的技巧

按照,最实用优先原则,优先贴出官方对参数的介绍涉及页面:

全局failhard参数的介绍:  https://docs.saltstack.com/en/latest/ref/states/failhard.html
sls相互依赖或相互连接的各大参数: https://docs.saltstack.com/en/latest/ref/states/requisites.html#requisites

failhard参数介绍:
         实际环境中,我们会有中断需求,当一个state出现异常,我们不希望与之有关的state开始执行,甚至在它后面的state也终止执行;而failhard可以满足我们的需求
         用法:可以在master的配置文件中配置全局的stats都有此效果,后者在某一个stat里面的某个模块下监控,或者监控整一个state的状态。

例子:

第一种:

wget:
  pkg.installed:
    - name: wget
yi:
  cmd.run:
    - name: echo aaa
    - cwd: /
  file.managed:
    - names:
      - /root/heheda.txt:
        - source: /root/sha
      - /root/passwd.txt:
        - source: /root/shadow
    - failhard: True
er:
  cmd.run:
    - name: echo "a='/root/a.txt'";
    - cwd: /

san:
  cmd.run:
    - name: echo "heheda"
    - cwd: /

解释:在yi的state中file模块里有failhard,这就表示,只要全局没有配置这个failhard,那么当这里的文件复制中其中一个文件复制失败,那么er和san的state就不会被执行

第二种:

wget:
  pkg.installed:
    - name: wget
yi:
  cmd.run:
    - name: echo aaa
    - cwd: /
    - failhard: True
  file.managed:
    - names:
      - /root/heheda.txt:
        - source: /root/sha
      - /root/passwd.txt:
        - source: /root/shadow
er:
  cmd.run:
    - name: echo "a='/root/a.txt'";
    - cwd: /

san:
  cmd.run:
    - name: echo "heheda"
    - cwd: /

解释:在yi的state中file模块里有failhard,这就表示,只要全局没有配置这个failhard,那么当这里的文件复制中其中一个文件复制失败,只要yi中的cmd模块中的run运行正常,则会继续执行er和san的stat内容

 

onchanges参数介绍:
        实际环境中,我们会有某个stat执行需要一个前置条件或所有前置条件能执行成功,否则它就不能被执行,这个参数就是用来检查之前的state是否被执行成功的
        用法:就是在某个需要前置state的state下放上这个参数就可以了
具体用法如下:
       

wget:
  pkg.installed:
    - name: wget
yi:
  cmd.run:
    - name: echo aaa
    - cwd: /
  file.managed:
    - names:
      - /root/heheda.txt
      - source:/root/sha
er:
  cmd.run:
    - name: echo "a='/root/a.txt'";
    - cwd: /

san:
  cmd.run:
    - name: echo "heheda"
    - cwd: /
    - onchanges:
      - cmd: yi
      - cmd: er
      - file: yi

解释:想要执行san这个state,则必须要把yi中的cmd还有file执行成功;还有er中的cmd也要执行成功;
值的注意的是,这个onchanges只监控一个job的result结果,file的监控最好直接指向某个文件会比较准备,否则如果是操作多个文件则会存在异常问题。
- file: yi可以改写成 - file: /root/heheda.txt

 

这里的内容也很不错,建议自己看吧:

https://kyle.ai/blog/6577.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值