Ansible:检查 async_status 多个作业有无结果
Ansible: check async_status on multiple jobs with and without results
我有三个用于下载各种资源的 Ansible 任务。其中两个是使用循环创建的,因此,它们具有键 results
和 return 个对象列表,一个 return 只是一个具有键 ansible_job_id
的对象。
如何在一个检查作业状态任务中遍历所有这些?我试过 with_nested
但出现错误
'list object' has no attribute 'ansible_job_id'
- name: Check download job statuses
async_status:
jid: "{{ item.ansible_job_id }}"
register: job_result
until: job_result.finished
retries: 12
delay: 10
with_nested:
- list1.results
- list2.results
- object
您只需创建一个列表,其中包含具有 ansible_job_id
键的所有元素。
在 Jinja 中,列表的串联就像添加它们一样简单 — 使用 +
运算符。
所以,你的任务最终是:
- name: Check download job statuses
async_status:
jid: "{{ item.ansible_job_id }}"
register: job_result
until: job_result.finished
retries: 12
delay: 10
loop: "{{ list1.results + list2.results + [object] }}"
我有三个用于下载各种资源的 Ansible 任务。其中两个是使用循环创建的,因此,它们具有键 results
和 return 个对象列表,一个 return 只是一个具有键 ansible_job_id
的对象。
如何在一个检查作业状态任务中遍历所有这些?我试过 with_nested
但出现错误
'list object' has no attribute 'ansible_job_id'
- name: Check download job statuses
async_status:
jid: "{{ item.ansible_job_id }}"
register: job_result
until: job_result.finished
retries: 12
delay: 10
with_nested:
- list1.results
- list2.results
- object
您只需创建一个列表,其中包含具有 ansible_job_id
键的所有元素。
在 Jinja 中,列表的串联就像添加它们一样简单 — 使用 +
运算符。
所以,你的任务最终是:
- name: Check download job statuses
async_status:
jid: "{{ item.ansible_job_id }}"
register: job_result
until: job_result.finished
retries: 12
delay: 10
loop: "{{ list1.results + list2.results + [object] }}"