全部,
需要与上一个任务中改变的主机组成一个动态组,所以忽略那些被跳过的。
- name: Sample task to run some command
command: cat /etc/abc
when: some condition
register: cmmd
现在假设有 20 台主机并且正在使用串行:15 运行我的剧本,我如何在上述任务之后使用 add_host 或 group_by 形成一个动态组,这可以提供一个仅包含示例任务运行的主机的主机组/改变。因为我需要在下一个任务中在更改后的主机上运行一些任务,但使用 ansible_play_hosts 会导致它失败,因为其他 5 个服务器未定义。
尝试了 add_host 但无法通过。
- name: Form dynamic group
add_host:
host: "{{ item }}"
group: dynamic
with_items: "{{ ansible_play_hosts }}"
when: hostvars[item].cmmd.changed
notify:
- some handler where i'll use this group to run tasks