homelab/ansible/roles/postgres/tasks/main.yml

55 lines
1.2 KiB
YAML

---
- name: Install postgresql
ansible.builtin.apt:
pkg:
- postgresql
- python3-psycopg2
update_cache: true
become: true
notify: Restart postgres
- name: Create databases
community.postgresql.postgresql_db:
name: "{{ item.database }}"
become: true
become_user: postgres
loop: "{{ postgres_users }}"
- name: Create postgres user
community.postgresql.postgresql_user:
db: "{{ item.database }}"
name: "{{ item.user }}"
password: "{{ item.password }}"
become: true
become_user: postgres
loop: "{{ postgres_users }}"
- name: Set database owners
community.postgresql.postgresql_db:
name: "{{ item.database }}"
owner: "{{ item.user }}"
become: true
become_user: postgres
loop: "{{ postgres_users }}"
- name: Copy authorization config
ansible.builtin.copy:
src: pg_hba.conf
dest: /etc/postgresql/16/main/pg_hba.conf
owner: postgres
group: postgres
mode: "0640"
become: true
notify: Restart postgres
- name: Copy connection config
ansible.builtin.copy:
src: postgresql.conf
dest: /etc/postgresql/16/main/postgresql.conf
owner: postgres
group: postgres
mode: "0640"
backup: true
become: true
notify: Restart postgres