--- - hosts: localhost gather_facts: no vars: host_hash_merged: {'host_var1': 'inventory 2', 'host_var2': 'inventory 1'} host_hash_replaced: {'host_var1': 'inventory 2'} group_hash_merged: {'group_var1': 'inventory 2', 'group_var2': 'inventory 1'} group_hash_replaced: {'group_var1': 'inventory 2'} tasks: - name: debug hash behaviour result debug: var: "{{ lookup('env', 'ANSIBLE_HASH_BEHAVIOUR') }}" verbosity: 2 - name: assert hash behaviour is merge or replace assert: that: - lookup('env', 'ANSIBLE_HASH_BEHAVIOUR') in ('merge', 'replace') - name: debug test_inventory_host_hash debug: var: hostvars['host1']['test_inventory_host_hash'] verbosity: 2 - name: debug test_inventory_group_hash debug: var: test_inventory_group_hash verbosity: 2 - assert: that: - hostvars['host1']['test_inventory_host_hash'] == host_hash_replaced - test_inventory_group_hash == group_hash_replaced when: "lookup('env', 'ANSIBLE_HASH_BEHAVIOUR') == 'replace'" - assert: that: - hostvars['host1']['test_inventory_host_hash'] == host_hash_merged - test_inventory_group_hash == group_hash_merged when: "lookup('env', 'ANSIBLE_HASH_BEHAVIOUR') == 'merge'"