我编写了以下剧本。我预计第二个剧本会出现错误,但第一个和第三个剧本会运行。我得到的结果是第一个剧本运行,第二个剧本失败,第三个剧本完全被忽略。
如果我使第二次播放成功,那么第三次播放就会成功。
即使第二个播放失败,我怎样才能执行第三个播放?
- name: First local task
hosts: localhost
tasks:
- add_host:
name: dummy.example.com
groups: test
- name: Failing remote host
hosts: test
tasks:
- debug:
msg: 'test'
- name: "This one should run too?"
hosts: localhost
tasks:
- debug:
msg: 'success!'
答案1
您没有在问题中指定确切的错误。但是,通常您可以添加ignore_errors: yes
到第二个任务以继续执行第三个任务,即使出现错误。如果错误是您的主机“测试”无法访问,那么您必须使用ignore_unreachable: yes
如下所示的方法:
- name: First local task
hosts: localhost
tasks:
- add_host:
name: dummy.example.com
groups: test
- name: Failing remote host
hosts: test
tasks:
- debug:
msg: 'test'
ignore_unreachable: yes
- name: "This one should run too?"
hosts: localhost
tasks:
- debug:
msg: 'success!'