Avoid unnecessary secondary fact gathering failure

Previously, during fact gathering when using the '--limit' argument if a
host inside the limit fails to gather facts, this would cause another
host to fail during delegated fact gathering. This is because the
ansible_facts variable would not be populated for the host.

This change fixes the issue by avoiding delegated fact gathering for
hosts inside the limit.

Partial-Bug: #2041860
Change-Id: I8e321469089f0eb80420b788b51e6d028c7fef4d
This commit is contained in:
Mark 2024-03-08 14:33:55 +00:00
parent 3760eac763
commit 0d238e479b
2 changed files with 11 additions and 1 deletions

View File

@ -17,6 +17,7 @@
filter: "{{ kolla_ansible_setup_filter }}"
gather_subset: "{{ kolla_ansible_setup_gather_subset }}"
when:
# Don't gather if fact caching is in use
- not ansible_facts
- name: Gather package facts
@ -61,8 +62,11 @@
delegate_facts: True
delegate_to: "{{ item }}"
with_items: "{{ delegate_hosts }}"
# We gathered facts for all hosts in the batch during the first play.
when:
# We gathered facts for all hosts in the batch during the first play.
# Ensure that we don't try again if they failed.
- item not in groups["all_using_limit_True"]
# Don't gather if fact caching is in use
- not hostvars[item].ansible_facts
- name: Gather package facts

View File

@ -0,0 +1,6 @@
---
fixes:
- |
Fixes an issue during fact gathering when using the ``--limit`` argument
where a host that fails to gather facts could cause another host to fail
during delegated fact gathering.