从Ansible Playbook内无法访问的主机中恢复

时间:2016-05-26 17:03:28

标签: ansible ansible-playbook

我有一个Ansible playbook,用于自动备份服务器和数据库(两者都在同一个VM上)。

昨晚在剧本运行过程中,rsync遇到主机无法访问错误,剧本失败。我不知道在主机无法访问的情况下,块的“救援”部分将不会被执行。这导致救援无法运行,我们备份的服务没有上线,这意味着许多人在早上无法工作。

我正在寻找一种方法来捕获诸如“failed_when”之类的主机无法访问的错误,这样我就可以执行一项任务来启动服务而不会再发生这种情况。

有没有人有任何想法?

3 个答案:

答案 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