异步在循环内运行委托的任务

时间:2019-11-20 16:26:46

标签: ansible

我需要连接到各种主机并运行一个API调用。使用 delegate_to 足够容易,但是当我尝试使用aem = x和poll = 0的“即发即弃” 运行此循环时,出现了我的问题。我想在要连接的主机上运行异步,而这是我要异步运行的本地循环。本质上是要同时在所有主机上执行此原始操作。

   - name: Set x-variable on host
     vars:
       ansible_ssh_user: "user"
       ansible_ssh_pass: "password"
     raw: 'api call {{someVar}}'
     register: result
     failed_when: "'ERROR' in result.stdout or 'COMMAND PROCESSING FAILED' in result.stdout or 'error' in result.stdout or result.rc != 0"
     delegate_to: "{{item}}"
     loop: '{{hostDict.ip}}'
     async: 45
     poll: 0

我得到的错误是

failed: [localhost] (item=10.24.11.1) => {"ansible_loop_var": "item", "item": "10.24.11.1", "msg": "async is not supported for this task."}

这意味着它试图在没有安装python的主机上运行一些异步操作。

0 个答案:

没有答案