我有 2 个剧本在 ansible 上运行,一个接一个。剧本 1 完成后,我想仅在第一个剧本完全成功的主机上运行第二个剧本。浏览 ansible 文档,我找不到任何有关哪些主机未通过特定剧本的可访问信息。这怎么能做到呢?
仅供引用,我需要单独的剧本,因为第二个剧本必须串行运行,即 only available at the playbook level
最佳答案
其中所有主机 - 成功主机 = 失败主机
,您可以使用以下任务来获取剧中所有主机(包括失败主机)和所有失败主机的两个特殊变量之间的差异还没有失败。使用serial
会影响结果。
- name: Print play hosts that failed
debug:
msg: "The hosts that failed are {{ ansible_play_hosts_all| difference(ansible_play_batch) |join('\n') }}"
来源:https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html
关于ansible - 检查哪些主机在 ansible 中失败了 playbook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28553879/