--- - hosts: facthost7 tags: [ 'fact_negation' ] connection: local gather_subset: "!hardware" gather_facts: no tasks: - name: setup with not hardware setup: gather_subset: - "!hardware" register: not_hardware_facts - name: debug setup with not hardware debug: var: not_hardware_facts - hosts: facthost0 tags: [ 'fact_min' ] connection: local gather_subset: "all" gather_facts: yes tasks: - setup: register: facts - name: Test that retrieving all facts works assert: that: - 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"' - 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_NET") != "UNDEF_HW"' - 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"' - hosts: facthost19 tags: [ 'fact_min' ] connection: local gather_facts: no tasks: - setup: filter: "*env*" register: facts_results - name: Test that retrieving all facts filtered to env works assert: that: - 'ansible_interfaces|default("UNDEF_NET") == "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_MOUNT") == "UNDEF_MOUNT"' - 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"' - 'ansible_env|default("UNDEF_ENV") != "UNDEF_ENV"' - hosts: facthost13 tags: [ 'fact_min' ] connection: local gather_facts: no tasks: - setup: filter: "ansible_user_id" register: facts_results - name: Test that retrieving all facts filtered to specific fact ansible_user_id works assert: that: - 'ansible_user_id|default("UNDEF_USER") != "UNDEF_USER"' - 'ansible_interfaces|default("UNDEF_NET") == "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_MOUNT") == "UNDEF_MOUNT"' - 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"' - 'ansible_env|default("UNDEF_ENV") == "UNDEF_ENV"' - hosts: facthost11 tags: [ 'fact_min' ] connection: local gather_facts: no tasks: - setup: filter: "*" register: facts - name: Test that retrieving all facts filtered to splat assert: that: - 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"' - 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_NET") != "UNDEF_HW"' - 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"' - hosts: facthost12 tags: [ 'fact_min' ] connection: local gather_facts: no tasks: - setup: filter: "" register: facts - name: Test that retrieving all facts filtered to empty filter_spec works assert: that: - 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"' - 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_NET") != "UNDEF_HW"' - 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"' - hosts: facthost1 tags: [ 'fact_min' ] connection: local gather_subset: "!all" gather_facts: yes tasks: - name: Test that only retrieving minimal facts work assert: that: - 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"' - 'ansible_interfaces|default("UNDEF_NET") == "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"' - 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"' - hosts: facthost2 tags: [ 'fact_network' ] connection: local gather_subset: "network" gather_facts: yes tasks: - name: Test that retrieving network facts work assert: that: - 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"' - 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"' - 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"' - hosts: facthost3 tags: [ 'fact_hardware' ] connection: local gather_subset: "hardware" gather_facts: yes tasks: - name: Test that retrieving hardware facts work assert: that: - 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"' - 'ansible_interfaces|default("UNDEF_NET") == "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_HW") != "UNDEF_HW" or ansible_distribution == "MacOSX"' - 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"' - hosts: facthost4 tags: [ 'fact_virtual' ] connection: local gather_subset: "virtual" gather_facts: yes tasks: - name: Test that retrieving virtualization facts work assert: that: - 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"' - 'ansible_interfaces|default("UNDEF_NET") == "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"' - 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"' - hosts: facthost5 tags: [ 'fact_comma_string' ] connection: local gather_subset: "virtual,network" gather_facts: yes tasks: - name: Test that retrieving virtualization and network as a string works assert: that: - 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"' - 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"' - 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"' - hosts: facthost6 tags: [ 'fact_yaml_list' ] connection: local gather_subset: - virtual - network gather_facts: yes tasks: - name: Test that retrieving virtualization and network as a string works assert: that: - 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"' - 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"' - 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"' - hosts: facthost7 tags: [ 'fact_negation' ] connection: local gather_subset: "!hardware" gather_facts: yes tasks: - name: Test that negation of fact subsets work assert: that: - 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"' - 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"' - 'ansible_virtualization_role|default("UNDEF_VIRT") != "UNDEF_VIRT"' - hosts: facthost8 tags: [ 'fact_mixed_negation_addition' ] connection: local gather_subset: "!hardware,network" gather_facts: yes tasks: - name: Test that negation and additional subsets work together assert: that: - 'ansible_user_id|default("UNDEF_MIN") != "UNDEF_MIN"' - 'ansible_interfaces|default("UNDEF_NET") != "UNDEF_NET"' - 'ansible_mounts|default("UNDEF_HW") == "UNDEF_HW"' - 'ansible_virtualization_role|default("UNDEF_VIRT") == "UNDEF_VIRT"' - hosts: facthost9 tags: [ 'fact_local'] connection: local gather_facts: no tasks: - name: Create fact directories become: true with_items: - /etc/ansible/facts.d - /tmp/custom_facts.d file: state: directory path: "{{ item }}" mode: '0777' - name: Deploy local facts with_items: - path: /etc/ansible/facts.d/testfact.fact content: '{ "fact_dir": "default" }' - path: /tmp/custom_facts.d/testfact.fact content: '{ "fact_dir": "custom" }' copy: dest: "{{ item.path }}" content: "{{ item.content }}" - hosts: facthost9 tags: [ 'fact_local'] connection: local gather_facts: yes tasks: - name: Test reading facts from default fact_path assert: that: - '"{{ ansible_local.testfact.fact_dir }}" == "default"' - hosts: facthost9 tags: [ 'fact_local'] connection: local gather_facts: yes fact_path: /tmp/custom_facts.d tasks: - name: Test reading facts from custom fact_path assert: that: - '"{{ ansible_local.testfact.fact_dir }}" == "custom"'