--- # Nextcloud User Management - Service-Specific User Setup - name: Check if nextcloud group exists getent: database: group key: "{{ nextcloud_group }}" register: nextcloud_group_check failed_when: false - name: Create nextcloud group if not exists group: name: "{{ nextcloud_group }}" system: true when: nextcloud_group_check.ansible_facts.getent_group is not defined - name: Check if nextcloud user exists getent: database: passwd key: "{{ nextcloud_user }}" register: nextcloud_user_check failed_when: false - name: Create or update nextcloud user user: name: "{{ nextcloud_user }}" group: "{{ nextcloud_group }}" groups: "{{ [postgresql_client_group, valkey_client_group] }}" system: true shell: /usr/bin/nologin home: "{{ nextcloud_home }}" create_home: true comment: "Nextcloud cloud storage service" append: true - name: Create nextcloud home directory file: path: "{{ nextcloud_home }}" state: directory owner: "{{ nextcloud_user }}" group: "{{ nextcloud_group }}" mode: '0755' - name: Get nextcloud user UID and GID for container configuration shell: | echo "uid=$(id -u {{ nextcloud_user }})" echo "gid=$(id -g {{ nextcloud_user }})" register: nextcloud_user_info changed_when: false - name: Set nextcloud UID/GID facts for container templates set_fact: nextcloud_uid: "{{ nextcloud_user_info.stdout_lines[0] | regex_replace('uid=', '') }}" nextcloud_gid: "{{ nextcloud_user_info.stdout_lines[1] | regex_replace('gid=', '') }}"