# - name: Install Dependencies # apt: # pkg: # - apparmor # - docker.io # - python3-docker - name: Create git USER ansible.builtin.user: name: git register: git_user - name: Create Gitea ansible.builtin.file: path: "/opt/gitea" state: directory owner: root mode: "755" - name: Create Data Directory ansible.builtin.file: path: "/opt/gitea/data" state: directory owner: "{{ git_user.uid }}" group: "{{ git_user.group }}" mode: "700" - name: Create Config Directory ansible.builtin.file: path: "/opt/gitea/config" state: directory owner: "{{ git_user.uid }}" group: "{{ git_user.group }}" mode: "700" - name: Start Docker Daemon ansible.builtin.systemd: name: docker enabled: true state: started - name: Backup Files block: - name: Stop Gitea for Backup community.docker.docker_compose: project_src: /opt/gitea state: present stopped: true - name: Backup Gitea Directory ansible.builtin.copy: src: /opt/gitea dest: "/opt/gitea.backup@{{ ansible_date_time.iso8601 }}" mode: "700" remote_src: true directory_mode: true register: backup - name: Apply Changes block: - name: Upload Environment File ansible.builtin.template: src: environment.env.j2 dest: "/opt/gitea/environment.env" owner: root mode: "600" register: gitea_env - name: Upload docker-compose.yaml ansible.builtin.template: src: docker-compose.yaml.j2 dest: /opt/gitea/docker-compose.yaml owner: root mode: "600" register: gitea_container - name: Start Gitea community.docker.docker_compose: project_src: /opt/gitea register: docker_compose - ansible.builtin.debug: var: docker_compose - name: Check if {{ gitea.hostname }}.{{ gitea.domain }} is available and returning status 200 ansible.builtin.uri: url: "https://{{ gitea.hostname }}.{{ gitea.domain }}" register: _result until: _result.status == 200 retries: 30 delay: 2 rescue: - name: Stop Gitea for Backup community.docker.docker_compose: project_src: /opt/gitea state: present stopped: true - name: Restore Gitea Directory from Backup ansible.builtin.copy: src: "{{ backup.dest }}" dest: "{{ backup.src }}" remote_src: true mode: "700" - name: Create / Recreate Gitea community.docker.docker_compose: project_src: /opt/gitea state: present restarted: true always: - name: Check if {{ gitea.hostname }}.{{ gitea.domain }} is available and returning status 200 ansible.builtin.uri: url: "https://{{ gitea.hostname }}.{{ gitea.domain }}" register: _result until: _result.status == 200 retries: 30 delay: 2