--- - name: Check for existing inventories changed_when: false ansible.builtin.uri: url: "http://{{ ansible_host }}:3000/api/project/{{ semaphore_project_id }}/inventory" method: GET headers: Cookie: "{{ semaphore_login.cookies_string }}" status_code: 200 timeout: 5 register: semaphore_inventories - name: Create Inventory changed_when: "semaphore_inventory_created.status == 201" ansible.builtin.uri: url: "http://{{ ansible_host }}:3000/api/project/{{ semaphore_project_id }}/inventory" method: POST headers: Cookie: "{{ semaphore_login.cookies_string }}" body: "{{ lookup('ansible.builtin.template', 'inventory.yml.j2') | from_yaml | to_json }}" body_format: json status_code: 201 timeout: 5 register: semaphore_inventory_created when: semaphore_inventories.json | selectattr('name', 'equalto', semaphore_project_name) | length == 0 - name: Parse semaphore_inventory_id (existing) ansible.builtin.set_fact: semaphore_inventory_id: "{{ semaphore_inventories.json | selectattr('name', 'equalto', semaphore_project_name) | map(attribute='id') | first }}" when: semaphore_inventories.json | selectattr('name', 'equalto', semaphore_project_name) | length > 0 - name: Parse semaphore_inventory_id (created) ansible.builtin.set_fact: semaphore_inventory_id: "{{ semaphore_inventory_created.json.id }}" when: semaphore_inventories.json | selectattr('name', 'equalto', semaphore_project_name) | length == 0