【发布时间】:2020-01-09 11:57:00
【问题描述】:
我的剧本中有两个剧本(1 和 2)。 首先播放 play1 有两个任务 (A/B)。 如果任务 A 失败,我需要任务 B 也被执行,然后剧本退出。 换句话说,将跳过播放 2。 所以我使用了 block/always 方法。 当主机是单主机时它工作正常。 但是当我指定多个主机播放时, play2 仍然被执行。 虽然 play2 只针对一台主机执行,但我希望 playbook 在 play2 之前退出。
我尝试将 any_errors_fatal 添加到任务 A,但它不起作用。
# 单主机剧本
-
名称:测试块 1
主机:pltB
gather_facts:没有
任务:
-
块:
- 命令:“/usr/bin/hostname1”
注册:hostname_res
any_errors_fatal: true
总是:
- debug: msg="from always block 1"
-
-
名称:测试块 2
主机:pltB
gather_facts:没有
任务:
-
块:
- debug: msg="result is {{ hostname_res.stdout }} "
总是:
- debug: msg="from always block 2" ...
-
单主机输出
ansible-playbook test.yml -i ../inventory/serverhosts
播放 [测试块 1] ******************************************* ******************************************************
TASK [命令] ******************************************* ************************************************ 致命:[192.168.111.25]:失败! => {"changed": false, "cmd": "/usr/bin/hostname1", "msg": "[Errno 2] 没有这样的文件或目录", "rc": 2}
任务[调试] ******************************************* ****************************************** 好的:[192.168.111.25] => { "msg": "从总是块 1" } 要重试,请使用:--limit @/home/playbooks/test.retry
播放回顾 ************************************************ ****************************************** 192.168.111.25 : ok=1 改变=0 unreachable=0 failed=1
主机中有多个服务器
-
名称:测试块 1
主机:pltB,pltA
gather_facts:没有
任务:
-
块:
- 命令:“/usr/bin/hostname1”
注册:hostname_res
any_errors_fatal: true
总是:
- debug: msg="from always block 1"
-
-
名称:测试块 2
主机:pltB,pltA
gather_facts:没有
任务:
-
块:
- debug: msg="result is {{ hostname_res.stdout }} "
总是:
- debug: msg="from always block 2" ...
-
多台服务器的输出
播放 [测试块 1] ******************************************* ************************************************
TASK [命令] ******************************************* ************************************************ 致命:[192.168.111.25]:失败! => {"changed": false, "cmd": "/usr/bin/hostname1", "msg": "[Errno 2] 没有这样的文件或目录", "rc": 2} 更改:[192.168.111.24]
任务[调试] ******************************************* ************************************************ 好的:[192.168.111.25] => { "msg": "从总是块 1" } 好的:[192.168.111.24] => { "msg": "从总是块 1" }
播放[测试块2] ***************************************** ************************************************
任务[调试] ******************************************* ************************************************ 好的:[192.168.111.24] => { “味精”:“结果是 plt001” }
任务[调试] ******************************************* ******************************************* 好的:[192.168.111.24] => { "msg": "从总是块 2" } 要重试,请使用:--limit @/home/playbooks/test.retry
播放回顾 ************************************************ ****************************************************** ******** 192.168.111.24:ok=4 改变=1 不可达=0 失败=0 192.168.111.25 : ok=1 改变=0 unreachable=0 failed=1
【问题讨论】:
标签: ansible