mirror of
https://github.com/ublue-os/forge.git
synced 2025-04-23 23:13:43 +03:00
36 lines
1.5 KiB
YAML
36 lines
1.5 KiB
YAML
---
|
|
- 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
|