- name: Create Gitea directory file: path: "{{ gitea_root }}" state: directory - name: Create Gitea database postgresql_db: name: "{{ gitea_dbname }}" become: true become_user: postgres - name: Create Gitea database user postgresql_user: db: "{{ gitea_dbname }}" name: "{{ gitea_dbuser }}" password: "{{ gitea_dbpass }}" become: true become_user: postgres - name: Create git user user: name: git state: present - name: Git user uid getent: database: passwd key: git - name: Git user gid getent: database: group key: git - name: Create git's .ssh directory file: path: /home/git/.ssh state: directory - name: Generate git's SSH keys openssh_keypair: path: /home/git/.ssh/id_rsa - name: Find git's public SSH key slurp: src: /home/git/.ssh/id_rsa.pub register: git_rsapub - name: Get stats on git's authorized_keys file stat: path: /home/git/.ssh/authorized_keys register: git_authkeys - name: Create git's authorized_keys file file: path: /home/git/.ssh/authorized_keys state: touch when: not git_authkeys.stat.exists - name: Add git's public SSH key to authorized_keys lineinfile: path: /home/git/.ssh/authorized_keys regex: "^ssh-rsa" line: "{{ git_rsapub['content'] | b64decode }}" - name: Create Gitea host script for SSH template: src: gitea.sh.j2 dest: /usr/local/bin/gitea mode: 0755 - name: Install Gitea's docker-compose file template: src: docker-compose.yml.j2 dest: "{{ gitea_root }}/docker-compose.yml" notify: restart_gitea - name: Install Gitea's docker-compose variables template: src: compose-env.j2 dest: "{{ gitea_root }}/.env" notify: restart_gitea - name: Start and enable Gitea service service: name: "{{ docker_compose_service }}@{{ gitea_name }}" state: started enabled: true