maabara/playbooks/setup_database.yml

109 lines
2.9 KiB
YAML
Raw Normal View History

---
- 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}}"