Para crear bases de datos PostgreSQL utilizo el siguiente esquema:
--- postgres_database: - name: test user: test pass: secret - name: test2 user: test2 pass: secretPero ahora necesito agregar extensiones por base de datos, así que pensé en usar algo como:
--- postgres_database: - name: test user: test pass: secret extensions: - unaccent - pgcrypto - uuid-ossp - name: test2 user: test2 pass: secret - name: test3 user: test3 pass: secret extensions: - pgcrypto El problema que tengo es que solo puedo pasar una extensión a la vez, por lo que me pregunto cómo podría recorrer los elementos postgres_database.extensions dentro del ciclo posgres_database .
Actualmente, esto funciona pero solo agrega la primera extensión encontrada:
- name: add extensions become: yes become_user: postgres postgresql_ext: name: "{{ item.extensions[0] }}" db: "{{ item.name }}" when: item.extensions is defined with_items: - "{{ postgres_database }}"¿Alguna idea de cómo podría solucionarse esto?
En una palabra:
- name: add extensions become: yes become_user: postgres postgresql_ext: name: "{{ item.1 }}" db: "{{ item.0.name }}" loop: "{{ postgres_database | subelements('extensions', skip_missing=True) }}"Referencias: