我有一个处理程序,可在配置更改时重新启动服务:
- 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
但是,即使在异步模式下,服务重启任务仍然失败。
答案 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