Ansible跳过无法访问的主机

Syn*_*ons 0 python error-handling ping ansible

您好,我编写了一个脚本来ping我的所有清单主机。VPN服务背后有一些服务,因此在对它们进行ping操作之前,我先建立了一条隧道。

这可以正常工作,但是,如果建立了隧道,但可听见的ping不能成功完成整个播放,只是暂停并且后续的任何任务都没有执行(隧道没有关闭/无法到达主机的其余任务没有执行)

我如何才能继续播放并跳过无法访问的主机?我看过“ meta clear_host_errors”,但事实并非如此。

这是我的剧本

- hosts:
    - liveservers-direct
    - liveservers-special
    - liveservers-keypair
    - testservers-direct
    - testservers-special
    - testservers-keypair
    - intern
  gather_facts: no
  strategy: debug
  become: no
  tasks:
  - name: Ping some servers
    ping:


- hosts:
    - liveservers-vpn
    - testservers-vpn
  strategy: debug
  gather_facts: no
  become: no
  serial: 1
  vars_files:
   - ../roles/vpn/vars/customers.yml
  tasks:
  - include: ../roles/vpn/tasks/connect.yml icao="{{hostvars[inventory_hostname]['icao']}}"
  - ping:
  - name:
    meta: clear_host_errors
  - include: ../roles/vpn/tasks/disconnect.yml icao="{{hostvars[inventory_hostname]['icao']}}"
Run Code Online (Sandbox Code Playgroud)

致命的:[server.behind.vpn]:莫名其妙!=> {“已更改”:false,“ msg”:“无法通过ssh连接到主机:ssh:连接到主机10.xx.xx.xx端口22:连接超时\ r \ n”,“无法访问” :true}

上面的错误发生在“ ping”上,如何使它跳过故障并仅继续处理其余主机?当播放器到达无法访问的主机时,播放器现在停止了,但是还需要检查一些

GPX*_*GPX 7

在即将到来的2.7版本的Ansible中,使用ignore_unreachable关键字将很快实现此目的。

请参阅2.7的发行说明-https: //github.com/ansible/ansible/blob/stable-2.7/changelogs/CHANGELOG-v2.7.rst#major-changes

ignore_unreachable戏剧和街区的新关键字。允许忽略由于主机不可达而失败的任务,并检查测试结果是否可达。