Reorganize and rejigger
This commit is contained in:
50
roles/pvc/tasks/patroni/bootstrap.yml
Normal file
50
roles/pvc/tasks/patroni/bootstrap.yml
Normal file
@ -0,0 +1,50 @@
|
||||
---
|
||||
- name: ensure patroni services are enabled and started on this host so it becomes header
|
||||
service:
|
||||
name: "{{ item }}.service"
|
||||
state: started
|
||||
enabled: yes
|
||||
with_items:
|
||||
- patroni
|
||||
|
||||
- name: wait 15s for cluster to initialize
|
||||
pause:
|
||||
seconds: 15
|
||||
|
||||
- block:
|
||||
- name: create user for role
|
||||
postgresql_user:
|
||||
name: "{{ pvc_dns_database_user }}"
|
||||
password: "{{ pvc_dns_database_password }}"
|
||||
encrypted: yes
|
||||
state: present
|
||||
login_host: /run/postgresql
|
||||
|
||||
- name: create database for role
|
||||
postgresql_db:
|
||||
name: "{{ pvc_dns_database_name }}"
|
||||
owner: "{{ pvc_dns_database_user }}"
|
||||
encoding: utf8
|
||||
state: present
|
||||
login_host: /run/postgresql
|
||||
|
||||
- name: set user privs for role
|
||||
postgresql_user:
|
||||
name: "{{ pvc_dns_database_user }}"
|
||||
db: "{{ pvc_dns_database_name }}"
|
||||
priv: ALL
|
||||
login_host: /run/postgresql
|
||||
|
||||
- name: create extensions
|
||||
postgresql_ext:
|
||||
name: "{{ item }}"
|
||||
db: "{{ pvc_dns_database_name }}"
|
||||
login_host: /run/postgresql
|
||||
with_items: "{{ extensions }}"
|
||||
when: extensions is defined
|
||||
|
||||
- name: import dns database schema
|
||||
command: "psql -U {{ pvc_dns_database_user }} -f /etc/postgresql/powerdns-schema.sql {{ pvc_dns_database_name }}"
|
||||
|
||||
become: yes
|
||||
become_user: postgres
|
85
roles/pvc/tasks/patroni/main.yml
Normal file
85
roles/pvc/tasks/patroni/main.yml
Normal file
@ -0,0 +1,85 @@
|
||||
---
|
||||
- name: install patroni packages via apt
|
||||
apt:
|
||||
name:
|
||||
- python-psycopg2
|
||||
- python3-kazoo
|
||||
- patroni
|
||||
- postgresql-11
|
||||
state: latest
|
||||
update-cache: yes
|
||||
|
||||
- name: stop and disable postgresql
|
||||
service:
|
||||
name: "{{ item }}"
|
||||
state: stopped
|
||||
enabled: no
|
||||
with_items:
|
||||
- postgresql
|
||||
- postgresql@11-main
|
||||
when: newhost is defined and newhost
|
||||
|
||||
- name: remove obsolete database directories
|
||||
file:
|
||||
dest: "{{ item }}"
|
||||
state: absent
|
||||
with_items:
|
||||
- /etc/postgresql/11
|
||||
- /var/lib/postgresql/11
|
||||
when: newhost is defined and newhost
|
||||
|
||||
- name: create patroni database directory
|
||||
file:
|
||||
dest: /var/lib/postgresql/patroni/pvc
|
||||
state: directory
|
||||
owner: postgres
|
||||
mode: 0700
|
||||
when: newhost is defined and newhost
|
||||
|
||||
- name: install postgresql customization configuration file
|
||||
template:
|
||||
src: patroni/postgresql.pvc.conf.j2
|
||||
dest: /etc/postgresql/postgresql.pvc.conf
|
||||
owner: postgres
|
||||
group: sudo
|
||||
mode: 0640
|
||||
notify: restart patroni
|
||||
|
||||
- name: install patroni configuration file
|
||||
template:
|
||||
src: patroni/patroni.yml.j2
|
||||
dest: /etc/patroni/config.yml
|
||||
owner: postgres
|
||||
group: postgres
|
||||
mode: 0640
|
||||
notify: restart patroni
|
||||
|
||||
- name: install check_mk agent check
|
||||
copy:
|
||||
src: patroni/postgres
|
||||
dest: /usr/lib/check_mk_agent/plugins/postgres
|
||||
mode: 0755
|
||||
|
||||
- name: install initial schema files
|
||||
copy:
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
owner: postgres
|
||||
group: sudo
|
||||
mode: 0640
|
||||
with_items:
|
||||
- { src: "patroni/powerdns-schema.sql", dest: "/etc/postgresql/powerdns-schema.sql" }
|
||||
|
||||
- include: patroni/bootstrap.yml
|
||||
run_once: yes
|
||||
when: bootstrap is defined and bootstrap
|
||||
|
||||
- name: ensure patroni services are enabled and started
|
||||
service:
|
||||
name: "{{ item }}.service"
|
||||
state: started
|
||||
enabled: yes
|
||||
with_items:
|
||||
- patroni
|
||||
|
||||
- meta: flush_handlers
|
Reference in New Issue
Block a user