--- - name: This playbook installs and setups postgresql hosts: aws become: true vars_files: - ../vars/secrets.yml vars: postgresql_user: gitea postgresql_db: giteadb container_network: gitea_network gitea_directory: /home/ubuntu/hifadhi_kuu/gitea tasks: - name: install postgresql apt: name: "{{item}}" loop: - postgresql - postgresql-contrib - libpq-dev - python3-dev - python3-pip - acl - name: install pyscopg python module ansible.builtin.pip: name: psycopg2 - name: enable the postgresql service service: name: postgresql enabled: true - name: start the postgresql service service: name: postgresql state: started - name: create giteadb database become_user: postgres community.postgresql.postgresql_db: name: "{{postgresql_db}}" encoding: UTF-8 lc_collate: en_US.UTF-8 lc_ctype: en_US.UTF-8 template: template0 - name: create user gitea become_user: postgres community.postgresql.postgresql_user: name: "{{postgresql_user}}" password: "{{postgresql_password}}" environment: PGOPTIONS: "-c password_encryption=scram-sha-256" - name: grant priviledges to giteadb to user gitea become_user: postgres community.postgresql.postgresql_privs: db: giteadb privs: ALL type: database role: gitea - name: let gitea authenticate as a peer ansible.builtin.lineinfile: path: /etc/postgresql/14/main/pg_hba.conf regexp: "^local.*all.*all.*peer" line: "local all all scram-sha-256" - name: create the gitea directory for the service ansible.builtin.file: path: "{{gitea_directory}}" state: directory mode: '0755' - name: install gitea container community.docker.docker_image: name: gitea/gitea source: pull pull: platform: amd64 - name: create network the docker container will run in community.docker.docker_network: name: "{{container_network}}" - name: run and make persistant gitea container community.docker.docker_container: name: gitea image: gitea/gitea state: started restart_policy: always ports: - "3000:3000" - "2222:2222" env: GITEA__database__DB_TYPE=postgres GITEA__database__HOST=localhost:5432 GITEA__database__NAME=giteadb GITEA__database__USER=gitea GITEA__database__PASSWD="{{postgresql_password}}" networks: - name: "{{container_network}}" volumes: - ./data:/var/lib/gitea - ./config:/etc/gitea - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro working_dir: "{{gitea_directory}}"