--- - name: create zfs datasets when: nextcloud_zfs is defined block: - name: create zfs base dataset zfs: name: "{{ nextcloud_zfs.pool }}/{{ nextcloud_zfs.name }}" state: present extra_zfs_properties: quota: "{{ nextcloud_zfs.size }}" - name: create zfs volumes for instances loop: "{{ nextcloud_instances | dict2items }}" loop_control: label: "{{ item.key }} ({{ item.value.quota }})" zfs: name: "{{ nextcloud_zfs.pool }}/{{ nextcloud_zfs.name }}/{{ item.key }}" state: present extra_zfs_properties: quota: "{{ item.value.quota }}" - name: configure nextcloud base bath set_fact: nextcloud_base_path: "{{ zfs_zpools[nextcloud_zfs.pool].mountpoint }}/{{ nextcloud_zfs.name }}" - name: create instance subdirectories when: nextcloud_zfs is not defined loop: "{{ nextcloud_instances | list }}" file: path: "{{ nextcloud_base_path }}/{{ item }}" state: directory - name: add group for nextcloud app group: name: nc-app gid: "{{ nextcloud_app_gid }}" - name: add user for nextcloud app user: name: nc-app uid: "{{ nextcloud_app_uid }}" group: nc-app password: "!" - name: create nextcloud app subdirectory loop: "{{ nextcloud_instances | list }}" loop_control: label: "{{ item }}" file: path: "{{ nextcloud_base_path }}/{{ item }}/nextcloud" owner: "{{ nextcloud_app_uid }}" group: "{{ nextcloud_app_gid }}" state: directory - name: add group for nextcloud db group: name: nc-db gid: "{{ nextcloud_db_gid }}" - name: add user for nextcloud db user: name: nc-db uid: "{{ nextcloud_db_uid }}" group: nc-db password: "!" - name: create nextcloud database subdirectory loop: "{{ nextcloud_instances | dict2items}}" loop_control: label: "{{ item.key }} ({{ item.value.database.type }})" file: path: "{{ nextcloud_base_path }}/{{ item.key }}/{{ item.value.database.type }}" owner: "{{ nextcloud_db_uid }}" group: "{{ nextcloud_db_gid }}" state: directory - name: generate pod manifests loop: "{{ nextcloud_instances | dict2items }}" loop_control: label: "{{ item.key }}" template: src: "pod-with-{{ item.value.database.type }}.yml.j2" dest: "/etc/kubernetes/manifests/{{ item.key }}.yml" mode: 0600