我想在远程计算机上运行命令。该命令将重置网络接口。如何在ansible playbook中运行它
- name: Execute config command
sudo: yes
shell: "mycommand"
async: 0
poll: 0
ignore_errors: true
上述任务不能始终如一地运作。即使我尝试使用async: 300
,也会发现同样的不一致。
答案 0 :(得分:1)
您可能遇到类似于我所描述的in this question的情况。根据您运行的命令(mycommand
),网络连接可能会很快丢失,导致Ansible认为连接意外丢失。发生这种情况时,会导致Ansible将其视为错误。
您可能希望在重置发生前修改mycommand
以包含休眠几秒钟,然后继续使用async:0
和poll:0
。这将使Ansible有足够的时间在后台启动mycommand
并在服务器重置网络连接之前干净地断开与服务器的连接而不会出现错误。
根据您的下一个任务,您可能还希望包含通过wait_for
运行的local_action
任务,以确保Ansible在尝试任何其他任务之前等待此网络重置完成。