diff --git a/tasks/set_vars.yml b/tasks/set_vars.yml index c7e67c72..3dc28b29 100644 --- a/tasks/set_vars.yml +++ b/tasks/set_vars.yml @@ -1,10 +1,9 @@ --- - name: Ensure ansible_facts used by role setup: - gather_subset: min - when: not ansible_facts.keys() | list | - intersect(__kernel_settings_required_facts) == - __kernel_settings_required_facts + gather_subset: "{{ __kernel_settings_required_facts_subsets }}" + when: __kernel_settings_required_facts | + difference(ansible_facts.keys() | list) | length > 0 - name: Set platform/version specific variables include_vars: "{{ lookup('first_found', ffparams) }}" diff --git a/vars/main.yml b/vars/main.yml index 6de6acfd..e5352278 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -13,3 +13,9 @@ __kernel_settings_required_facts: - distribution_major_version - distribution_version - os_family + +# the subsets of ansible_facts that need to be gathered in case any of the +# facts in required_facts is missing; see the documentation of +# the 'gather_subset' parameter of the 'setup' module +__kernel_settings_required_facts_subsets: "{{ ['!all', '!min'] + + __kernel_settings_required_facts }}"