Update appwrite provitioning
This commit is contained in:
59
playbooks/provision_database.yml
Normal file
59
playbooks/provision_database.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
---
|
||||
# TODO: This doesn't have any real idempotency. Can't compare current and desired states.
|
||||
- name: Provision Database
|
||||
hosts: prod:&appwrite
|
||||
gather_facts: false
|
||||
module_defaults:
|
||||
ansible.builtin.uri:
|
||||
body_format: json
|
||||
headers:
|
||||
X-Appwrite-Response-Format: '{{ appwrite_response_format }}'
|
||||
X-Appwrite-Project: '{{ appwrite_project }}'
|
||||
X-Appwrite-Key: '{{ appwrite_api_key }}'
|
||||
return_content: true
|
||||
tasks:
|
||||
- name: Use Appwrite REST API to create new database
|
||||
ansible.builtin.uri:
|
||||
url: "{{ appwrite_api_uri }}/databases"
|
||||
method: POST
|
||||
body:
|
||||
databaseId: "{{ bab_database.id }}"
|
||||
name: "{{ bab_database.name }}"
|
||||
enabled: "{{ bab_database.enabled }}"
|
||||
status_code: [201, 409]
|
||||
register: appwrite_api_result
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Create Collections
|
||||
ansible.builtin.uri:
|
||||
url: "{{ appwrite_api_uri }}/databases/{{ bab_database.id }}/collections/"
|
||||
method: POST
|
||||
body:
|
||||
collectionId: "{{ item.id }}"
|
||||
name: "{{ item.name }}"
|
||||
permissions: "{{ item.permissions }}"
|
||||
status_code: [201, 409]
|
||||
register: appwrite_api_result
|
||||
loop: '{{ bab_database.collections }}'
|
||||
delegate_to: localhost
|
||||
|
||||
# - name: Create Attributes
|
||||
# ansible.builtin.debug:
|
||||
# msg: "{{ lookup('ansible.builtin.template', 'appwrite_attribute_template.json.j2') }}"
|
||||
# register: appwrite_api_result
|
||||
# loop: "{{ bab_database.collections | subelements('attributes', skip_missing=True) }}"
|
||||
# # delegate_to: localhost
|
||||
|
||||
- name: Create Attributes
|
||||
ansible.builtin.uri:
|
||||
url: "{{ appwrite_api_uri }}/databases/{{ bab_database.id }}/collections/{{ item[0].id }}/attributes/{{ (item[1].format is defined and item[1].format != '' ) |ternary(item[1].format, item[1].type) }}"
|
||||
method: POST
|
||||
body: "{{ lookup('ansible.builtin.template', 'appwrite_attribute_template.json.j2') }}"
|
||||
status_code: [202, 409]
|
||||
register: appwrite_api_result
|
||||
loop: "{{ bab_database.collections | subelements('attributes', skip_missing=True) }}"
|
||||
delegate_to: localhost
|
||||
|
||||
# - name: Display response
|
||||
# ansible.builtin.debug:
|
||||
# var: appwrite_api_result
|
||||
Reference in New Issue
Block a user