gpt4 book ai didi

ansible - 如何避免在没有主机匹配时运行剧本?

转载 作者:行者123 更新时间:2023-12-02 09:13:59 25 4
gpt4 key购买 nike

用例:用户可以提供主机名并将触发 playbook 运行。如果主机名有拼写错误,我希望在“没有匹配的主机”时使完整的剧本运行失败。我想让它失败,因为我喜欢在 Bamboo(我用于 CD/CI)中检测运行 playbook 的失败。

我做了相当广泛的研究。当没有主机匹配时,剧本存在退出代码= 0,这似乎是一种想要的行为。 Here is one indication我发现。我同意一般行为应该是这样的。

所以我需要对我的用例进行额外检查。我尝试了以下方法:

- name: Deploy product
hosts: "{{ target_hosts }}"
gather_facts: no
any_errors_fatal: true

pre_tasks:
- name: Check for a valid target host
fail:
msg: "The provided host is not knwon"
when: target_hosts not in groups.tomcat_servers

但是由于没有主机匹配,剧本将不会运行,这没关系,但它也会以退出代码 0 结束。这样我就不会在我的自动化系统(Bamboo)中运行失败。

因此,我正在寻找一种解决方案,在没有主机匹配时抛出退出代码!= 0。

最佳答案

添加一个游戏,如果主机匹配,它将设置一个事实,然后在第二个游戏中检查该事实:

- name: Check hosts
hosts: "{{ target_hosts }}"
gather_facts: no
tasks:
- set_fact:
hosts_confirmed: true
delegate_to: localhost
delegate_facts: true

- name: Verify hosts
hosts: localhost
gather_facts: no
tasks:
- assert:
that: hosts_confirmed | default(false)

- name: The real play
hosts: "{{ target_hosts }}"
# ...

关于ansible - 如何避免在没有主机匹配时运行剧本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48901168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com