--- - name: Ensure Gitea service user exists ansible.builtin.user: name: "{{ gitea.service_user }}" groups: - "{{ gitea.service_group }}" append: true system: true shell: /usr/sbin/nologin create_home: false - name: Look up Gitea service user account details ansible.builtin.getent: database: passwd key: "{{ gitea.service_user }}" - name: Look up Gitea service group details ansible.builtin.getent: database: group key: "{{ gitea.service_group }}" - name: Set Gitea runtime UID and GID from host account ansible.builtin.set_fact: gitea_runtime_uid: "{{ ansible_facts['getent_passwd'][gitea.service_user][1] }}" gitea_runtime_gid: "{{ ansible_facts['getent_group'][gitea.service_group][1] }}" - name: Ensure Gitea directories exist ansible.builtin.file: path: "{{ item }}" state: directory owner: "{{ gitea.service_user }}" group: "{{ gitea.service_group }}" mode: "0755" loop: - "{{ gitea.path }}" - "{{ gitea.data_dir }}" - name: Render Gitea compose file ansible.builtin.template: src: compose.yaml.j2 dest: "{{ gitea.path }}/compose.yaml" owner: "{{ gitea.service_user }}" group: "{{ gitea.service_group }}" mode: "0640" register: gitea_compose - name: Install Gitea compose systemd unit ansible.builtin.template: src: gitea-compose.service.j2 dest: /etc/systemd/system/gitea-compose.service owner: root group: root mode: "0644" register: gitea_unit - name: Reload systemd for Gitea unit changes ansible.builtin.systemd_service: daemon_reload: true when: gitea_unit.changed - name: Enable Gitea compose stack ansible.builtin.service: name: gitea-compose state: "{{ 'restarted' if (gitea_compose.changed or gitea_unit.changed) else 'started' }}" enabled: true