diff --git a/playbooks/02b-services-user.yml b/playbooks/02b-services-user.yml index af2622c..33c8973 100644 --- a/playbooks/02b-services-user.yml +++ b/playbooks/02b-services-user.yml @@ -2,6 +2,20 @@ - name: "Deploy services" hosts: the_nine_worlds + vars: + volumes: + rproxy: + - "etc-letsencrypt" + www: [] + lrproxy: + - "etc-letsencrypt" + database: + - "wal" + - "data" + cloud: + - "nextcloud" + - "data" + tasks: - include_tasks: tasks/services/b-user/service-user.yml with_items: "{{ host_services }}" diff --git a/playbooks/tasks/services/b-user/service-user/01-user.d/data/_default.yml b/playbooks/tasks/services/b-user/service-user/01-user.d/data/_default.yml index 339b30b..11ef916 100644 --- a/playbooks/tasks/services/b-user/service-user/01-user.d/data/_default.yml +++ b/playbooks/tasks/services/b-user/service-user/01-user.d/data/_default.yml @@ -1,7 +1,4 @@ -- name: Create volume data directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 +- include_tasks: _volumes.yml + with_items: "{{ volumes[service_name] }}" + loop_control: + loop_var: volume diff --git a/playbooks/tasks/services/b-user/service-user/01-user.d/data/_volumes.yml b/playbooks/tasks/services/b-user/service-user/01-user.d/data/_volumes.yml new file mode 100644 index 0000000..255266f --- /dev/null +++ b/playbooks/tasks/services/b-user/service-user/01-user.d/data/_volumes.yml @@ -0,0 +1,22 @@ +- name: Create volume {{ volume }} for user {{ service_user_name }} + file: + path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/{{ volume }}" + state: directory + owner: "{{ service_user_name }}" + group: "{{ service_user_name }}" + mode: 0755 + +- name: Check if {{ volume }} mount directory exists for user {{ service_user_name }} + stat: + path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/{{ volume }}/_data" + register: volume_mount_directory + +- name: Create {{ volume }} mount directory for user {{ service_user_name }} + file: + path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/{{ volume }}/_data" + state: directory + owner: "{{ service_user_name }}" + group: "{{ service_user_name }}" + mode: 0755 + when: + not volume_mount_directory.stat.exists diff --git a/playbooks/tasks/services/b-user/service-user/01-user.d/data/cloud.yml b/playbooks/tasks/services/b-user/service-user/01-user.d/data/cloud.yml deleted file mode 100644 index cbfcd4a..0000000 --- a/playbooks/tasks/services/b-user/service-user/01-user.d/data/cloud.yml +++ /dev/null @@ -1,53 +0,0 @@ -- name: Create volume data directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - -- name: Create nextcloud directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/nextcloud" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - -- name: Check if nextcloud mount directory exists for user {{ service_user_name }} - stat: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/nextcloud/_data" - register: nextcloud_mount_directory - -- name: Create nextcloud mount directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/nextcloud/_data" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - when: - not nextcloud_mount_directory.stat.exists - -- name: Create data directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/data" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - -- name: Check if data mount directory exists for user {{ service_user_name }} - stat: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/data/_data" - register: data_mount_directory - -- name: Create data mount directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/data/_data" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - when: - not data_mount_directory.stat.exists diff --git a/playbooks/tasks/services/b-user/service-user/01-user.d/data/database.yml b/playbooks/tasks/services/b-user/service-user/01-user.d/data/database.yml deleted file mode 100644 index 27aac8f..0000000 --- a/playbooks/tasks/services/b-user/service-user/01-user.d/data/database.yml +++ /dev/null @@ -1,53 +0,0 @@ -- name: Create volume data directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - -- name: Create wal directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/wal" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - -- name: Check if wal mount directory exists for user {{ service_user_name }} - stat: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/wal/_data" - register: wal_mount_directory - -- name: Create wal mount directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/wal/_data" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - when: - not wal_mount_directory.stat.exists - -- name: Create data directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/data" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - -- name: Check if data mount directory exists for user {{ service_user_name }} - stat: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/data/_data" - register: data_mount_directory - -- name: Create data mount directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/data/_data" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - when: - not data_mount_directory.stat.exists diff --git a/playbooks/tasks/services/b-user/service-user/01-user.d/data/lrproxy.yml b/playbooks/tasks/services/b-user/service-user/01-user.d/data/lrproxy.yml deleted file mode 100644 index 2fcf9c3..0000000 --- a/playbooks/tasks/services/b-user/service-user/01-user.d/data/lrproxy.yml +++ /dev/null @@ -1,30 +0,0 @@ -- name: Create volume data directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - -- name: Create etc-letsencrypt directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/etc-letsencrypt" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - -- name: Check if etc-letsencrypt mount directory exists for user {{ service_user_name }} - stat: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/etc-letsencrypt/_data" - register: etc_letsencrypt_mount_directory - -- name: Create etc-letsencrypt mount directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/etc-letsencrypt/_data" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - when: - not etc_letsencrypt_mount_directory.stat.exists diff --git a/playbooks/tasks/services/b-user/service-user/01-user.d/data/rproxy.yml b/playbooks/tasks/services/b-user/service-user/01-user.d/data/rproxy.yml deleted file mode 100644 index 2fcf9c3..0000000 --- a/playbooks/tasks/services/b-user/service-user/01-user.d/data/rproxy.yml +++ /dev/null @@ -1,30 +0,0 @@ -- name: Create volume data directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - -- name: Create etc-letsencrypt directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/etc-letsencrypt" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - -- name: Check if etc-letsencrypt mount directory exists for user {{ service_user_name }} - stat: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/etc-letsencrypt/_data" - register: etc_letsencrypt_mount_directory - -- name: Create etc-letsencrypt mount directory for user {{ service_user_name }} - file: - path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/etc-letsencrypt/_data" - state: directory - owner: "{{ service_user_name }}" - group: "{{ service_user_name }}" - mode: 0755 - when: - not etc_letsencrypt_mount_directory.stat.exists diff --git a/playbooks/tasks/services/b-user/service-user/01-user.yml b/playbooks/tasks/services/b-user/service-user/01-user.yml index 99c750f..7f8d91d 100644 --- a/playbooks/tasks/services/b-user/service-user/01-user.yml +++ b/playbooks/tasks/services/b-user/service-user/01-user.yml @@ -49,6 +49,14 @@ group: "{{ service_user_name }}" mode: 0755 +- name: Create volume data directory for user {{ service_user_name }} + file: + path: "/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}" + state: directory + owner: "{{ service_user_name }}" + group: "{{ service_user_name }}" + mode: 0755 + - include_tasks: "{{ item }}" with_first_found: - files: diff --git a/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/_default.yml b/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/_default.yml index 85bc59a..11ef916 100644 --- a/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/_default.yml +++ b/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/_default.yml @@ -1,4 +1,4 @@ -- name: Create volume data dataset for user {{ service_user_name }} - zfs: - name: rpool/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }} - state: present +- include_tasks: _volumes.yml + with_items: "{{ volumes[service_name] }}" + loop_control: + loop_var: volume diff --git a/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/_volumes.yml b/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/_volumes.yml new file mode 100644 index 0000000..f8f7852 --- /dev/null +++ b/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/_volumes.yml @@ -0,0 +1,4 @@ +- name: Create {{ volume }} dataset for user {{ service_user_name }} + zfs: + name: rpool/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/{{ volume }} + state: present diff --git a/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/cloud.yml b/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/cloud.yml deleted file mode 100644 index 9d844d0..0000000 --- a/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/cloud.yml +++ /dev/null @@ -1,16 +0,0 @@ -- name: Create data dataset for user {{ service_user_name }} - zfs: - name: rpool/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }} - state: present - extra_zfs_properties: - canmount: "off" - -- name: Create app dataset for user {{ service_user_name }} - zfs: - name: rpool/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/nextcloud - state: present - -- name: Create data dataset for user {{ service_user_name }} - zfs: - name: rpool/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/data - state: present diff --git a/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/database.yml b/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/database.yml index 7cbb1fa..fe0ca97 100644 --- a/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/database.yml +++ b/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/database.yml @@ -1,10 +1,3 @@ -- name: Create data dataset for user {{ service_user_name }} - zfs: - name: rpool/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }} - state: present - extra_zfs_properties: - canmount: "off" - - name: Create wal dataset for user {{ service_user_name }} zfs: name: rpool/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/wal diff --git a/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/lrproxy.yml b/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/lrproxy.yml deleted file mode 100644 index d6f1186..0000000 --- a/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.d/lrproxy.yml +++ /dev/null @@ -1,11 +0,0 @@ -- name: Create data dataset for user {{ service_user_name }} - zfs: - name: rpool/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }} - state: present - extra_zfs_properties: - canmount: "off" - -- name: Create etc-letsencrypt dataset for user {{ service_user_name }} - zfs: - name: rpool/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }}/etc-letsencrypt - state: present diff --git a/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.yml b/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.yml index 95b1072..eb18f5e 100644 --- a/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.yml +++ b/playbooks/tasks/services/b-user/service-user/01-zfs-datasets.yml @@ -12,6 +12,13 @@ when: user_zfs_home is changed +- name: Create data dataset for user {{ service_user_name }} + zfs: + name: rpool/var/lib/{{ ansible_hostname }}/data/{{ service_user_name }} + state: present + extra_zfs_properties: + canmount: "off" + - include_tasks: "{{ item }}" with_first_found: - files: