2022-06-19 10:38:23 +00:00
|
|
|
---
|
2024-05-10 06:23:54 +00:00
|
|
|
- name: Database playbook
|
|
|
|
hosts: database
|
2022-06-19 10:38:23 +00:00
|
|
|
vars:
|
|
|
|
# certbot_force: true
|
2024-05-08 19:14:37 +00:00
|
|
|
pre_tasks:
|
|
|
|
- name: Add database member to pg_hba replication
|
2024-05-10 06:23:54 +00:00
|
|
|
ansible.builtin.set_fact:
|
|
|
|
postgresql_hba_entries: "{{ postgresql_hba_entries + [\
|
2024-05-08 19:14:37 +00:00
|
|
|
{'type':'host', \
|
|
|
|
'database': 'replication',\
|
|
|
|
'user':'repli',\
|
|
|
|
'address':hostvars[item]['ansible_'+default_interface]['ipv4']['address']+'/32',\
|
|
|
|
'auth_method':'trust'}] }}"
|
2024-05-10 06:23:54 +00:00
|
|
|
loop: '{{ groups.database }}'
|
2022-06-19 10:38:23 +00:00
|
|
|
roles:
|
|
|
|
- role: ansible-role-postgresql
|
|
|
|
become: true
|
2022-11-29 20:23:44 +00:00
|
|
|
tasks:
|
2024-05-08 19:14:37 +00:00
|
|
|
- name: Launch replication
|
2024-05-10 06:23:54 +00:00
|
|
|
ansible.builtin.command: pg_basebackup -D /var/lib/postgres/data -h {{groups["database_active"]|first}} -U repli -Fp -Xs -P -R -w
|
|
|
|
args:
|
|
|
|
creates: /var/lib/postgres/data/postgresql.conf
|
2024-05-08 19:14:37 +00:00
|
|
|
become: true
|
|
|
|
become_user: postgres
|
2024-05-10 06:23:54 +00:00
|
|
|
when: inventory_hostname in groups["database_standby"]
|
2024-05-08 19:14:37 +00:00
|
|
|
- name: Ensure PostgreSQL is started and enabled on boot.
|
2024-05-10 06:23:54 +00:00
|
|
|
ansible.builtin.service:
|
|
|
|
name: '{{ postgresql_daemon }}'
|
|
|
|
state: '{{ postgresql_service_state }}'
|
|
|
|
enabled: '{{ postgresql_service_enabled }}'
|
2024-05-08 19:14:37 +00:00
|
|
|
become: true
|
2024-05-08 19:37:27 +00:00
|
|
|
- name: Install pg_vector.rs
|
|
|
|
aur:
|
|
|
|
name: pgvecto.rs-bin
|
|
|
|
become: true
|
|
|
|
become_user: aur_builder
|
2024-05-09 07:25:23 +00:00
|
|
|
- name: Set Postgress shared libraries
|
|
|
|
community.postgresql.postgresql_set:
|
|
|
|
name: shared_preload_libraries
|
|
|
|
value: vectors.so
|
|
|
|
become: true
|
|
|
|
become_user: postgres
|
|
|
|
when: inventory_hostname in groups["database_active"]
|
|
|
|
notify: Restart postgresql
|
|
|
|
- name: Set Postgress shared libraries
|
|
|
|
community.postgresql.postgresql_set:
|
|
|
|
name: search_path
|
|
|
|
value: '$user, public, vectors'
|
|
|
|
become: true
|
|
|
|
become_user: postgres
|
|
|
|
when: inventory_hostname in groups["database_active"]
|