Ansible:服务模块不支持异步模式

时间:2017-03-24 17:54:22

标签: ansible

我一直试图在 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来手动停止服务。

我不想去那些路线,因为它们对我来说效率不高,所以我想知道是否有一个解决方案会更好。

1 个答案:

答案 0 :(得分:2)

尝试将其作为临时解决方法:

- name: Restart network
  become: yes
  shell: sleep 2 && service network restart
  async: 1
  poll: 0

在此任务之后不要忘记wait_for端口22以避免host unreachable错误。