【发布时间】:2023-03-13 17:05:01
【问题描述】:
我正在运行一个包含多个任务和主机的 ansible playbook。在这本剧本中,我试图将任务重新运行到失败的主机。我会尝试重建这种情况:
库存:
[hostgroup_1]
host1 ansible_host=1.1.1.1
host2 ansible_host=1.1.1.2
[hostgroup_2]
host3 ansible_host=1.1.1.3
host4 ansible_host=1.1.1.4
“hostgroup_1”中的主机应该出现故障,所以我可以检查两台主机上的错误处理。
剧本:
---
- name: firstplaybook
hosts: all
gather_facts: false
connection: network_cli
vars:
- ansible_network_os: ios
tasks:
- name: sh run
cisco.ios.ios_command:
commands: show run
- name: sh run
cisco.ios.ios_command:
commands: show run
正如预期的那样,前两个主机(1.1.1.1 和 1.1.1.2)出现故障,不会被考虑执行第二个任务。在查看了几个 Ansible 文档后,我发现了 meta clear_host_errors 任务。所以我尝试像这样运行剧本:
---
- name: firstplaybook
hosts: all
gather_facts: false
connection: network_cli
vars:
- ansible_network_os: ios
tasks:
- name: sh run
cisco.ios.ios_command:
commands: show run
- meta: clear_host_errors
- name: sh run
cisco.ios.ios_command:
commands: show run
遗憾的是,元输入没有重置主机,并且 Playbook 继续运行而没有再次考虑失败的主机。
其实我只是想知道 Ansible 如何再次考虑运行失败的主机,所以我可以继续这些。
提前谢谢大家
问候,卢卡斯
【问题讨论】: