我一直试图在 fire and forget 模式下调用'重新启动网络'服务,因为很明显我在VM中重启网络后会断开SSH连接我想有一个超时过程来做到这一点。
为了做到这一点,我在重启网络任务中做到了这一点:
- name: Restart network
become: true
service: name=network state=restarted
async: 1000
poll: 0
当Ansible到达这一点时,我收到了这个错误:
fatal: [build]: FAILED! => {"failed": true, "msg": "async mode is not supported with the service module"}
我发现这是一个尚未投入生产的Ansible bug,他们仍然在开发分支中使用它,我不想这样做,因为这也意味着Ansible中可能出现更多错误。
所以,在我看来,我有两个选择,要么我等待Ansible的新版本来修复错误,要么改变async: 0 and poll: 0
等待服务完成(这将永远不会完成)所以当我到达那个点时按CTRL + C来手动停止服务。
我不想去那些路线,因为它们对我来说效率不高,所以我想知道是否有一个解决方案会更好。
答案 0 :(得分:2)
尝试将其作为临时解决方法:
- name: Restart network
become: yes
shell: sleep 2 && service network restart
async: 1
poll: 0
在此任务之后不要忘记wait_for
端口22以避免host unreachable
错误。