我有一个Ansible playbook,用于自动备份服务器和数据库(两者都在同一个VM上)。
昨晚在剧本运行过程中,rsync遇到主机无法访问错误,剧本失败。我不知道在主机无法访问的情况下,块的“救援”部分将不会被执行。这导致救援无法运行,我们备份的服务没有上线,这意味着许多人在早上无法工作。
我正在寻找一种方法来捕获诸如“failed_when”之类的主机无法访问的错误,这样我就可以执行一项任务来启动服务而不会再发生这种情况。
有没有人有任何想法?
答案 0 :(得分:0)
截至目前,Ansible无法做到这一点。这是known issue。
答案 1 :(得分:0)
如今,有一种简单的方法可以忽略无法访问的主机。
geom_histogram(position = "identity")
答案 2 :(得分:0)
通过有条件的跟进处理无法访问的主机(一个总比没有好的解决方案):
tasks:
- name: This task will fail
command: /bin/false
ignore_unreachable: true
register: command_result
- name: This task will start only if host is unreachable
command: /bin/true
when: command_result.stdout is undefined