如何 运行 一个命令来重置 ansible 中的网络接口?

How to run a command that will reset the network interfaces in ansible?

我想 运行 在远程机器上执行命令。该命令将重置网络接口。如何在 ansible playbook

中 运行
- name: Execute config command
  sudo: yes
  shell: "mycommand"
  async: 0
  poll: 0
  ignore_errors: true

上述任务运行不一致。即使我尝试使用 async: 300,也会观察到同样的不一致。

您可能 运行 遇到与我描述的 类似的情况。根据您使用的命令 运行 (mycommand),网络连接可能会很快断开,导致 Ansible 认为连接意外断开。当发生这种情况时,它会导致 Ansible 将其视为错误。

您可能想要修改 mycommand 以在重置发生前包含几秒钟的休眠,并继续使用 async:0poll:0。这将使 Ansible 有足够的时间将 mycommand 启动到后台,并在服务器重置网络连接之前完全无错误地与服务器断开连接。

根据您的下一个任务是什么,您可能还想包括一个通过 local_action 运行的 wait_for 任务,以确保 Ansible 在尝试任何其他任务之前等待此网络重置完成。