ansible - 服务重启后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
但是,即使在异步模式下,服务重启任务仍然失败。
解决方案
从 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
推荐阅读
- javascript - 检查所有控制表格
- vba - 保存包含 Outlook2007 中的字符串的 Excel 文件
- javascript - 在 for 循环中使用由 getElementsbyClassName 创建的数组的问题
- java - 检索多个文件后,下一个文件出现错误“425 无法打开数据连接以传输文件”
- php - MVC 路由,传递数组作为参数(Laravel / CodeIgniter 风格)
- angular - 为什么我的角度代码没有在屏幕上呈现任何内容
- .net-core - 如何从 Azure 服务总线主题中获取指定消息,然后将其从主题中删除?
- android - 如何解决 minifyEnabled true 的错误?
- javascript - 如何在尺寸取决于不同移动屏幕尺寸的 iFrame 中居中对齐内容?
- r - Why does .SD in a data.table non-equi join throws an error occasionally?