服务重启后重新连接

时间:2019-06-07 23:24:38

标签: ansible

我有一个处理程序,可在配置更改时重新启动服务:

- name: restart openvpn
  service: name=openvpnas state=restarted

但是ansible无法正确处理它:

fatal: [vpn]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 10.10.10.2 port 22: Connection refused", "unreachable": true}

Ansible可以与主机重新启动一起使用,但是如何处理这种服务重新启动?

作为临时解决方法:

- name: restart openvpn
  debug: msg="restarting openvpn"
  changed_when: yes
  notify:
      - restart openvpn raw
      - reconnect

- name: restart openvpn raw
  service: name=openvpnas state=restarted
  ignore_errors: yes
  async: 300
  poll: 0

- name: reconnect
  wait_for_connection:
    delay: 5
    timeout: 300

但是,即使在异步模式下,服务重启任务仍然失败。

1 个答案:

答案 0 :(得分:0)

从 Ansible 2.7 开始,可以使用 ignore_unreachable。我确实认为这是一个稍微简洁的解决方案,因为它只会忽略连接错误。

我使用这样的处理程序:

- name: restart Tor
  service:
    name: tor@default
    state: restarted
  ignore_unreachable: yes

- name: reconnect
  wait_for_connection:
    connect_timeout: 15
    sleep: 5 
    timeout: 300
  listen: restart Tor