observability.svc.plus/roles/pgsql/tasks/main.yml
2026-02-01 20:53:55 +08:00

125 lines
5.2 KiB
YAML

---
#--------------------------------------------------------------#
# PG_DBSU [pg_install][pg_dbsu]
#--------------------------------------------------------------#
# pg_dbsu_create, pg_dbsu_create, pg_dbsu_ssh
- import_tasks: dbsu.yml
tags: [ pg_install, pg_dbsu ]
#--------------------------------------------------------------#
# PG_INSTALL [pg_install]
#--------------------------------------------------------------#
# pg_pkg, pg_link, pg_path, pg_dir, pg_bin, pg_alias, pg_dummy
- import_tasks: install.yml
tags: [ pg_install ]
#--------------------------------------------------------------#
# Config [pg_bootstrap][config]
#--------------------------------------------------------------#
# pg_conf, pg_key, pg_pitr_conf
- import_tasks: config.yml
tags: [ pg_bootstrap, postgres, patroni, pg_config ]
when: patroni_enabled|bool
#--------------------------------------------------------------#
# Cert [pg_bootstrap][pg_cert]
#--------------------------------------------------------------#
# pg_cert_private, pg_cert_issue, pg_cert_copy
- import_tasks: cert.yml
tags: [ pg_bootstrap, postgres, patroni, pg_cert ]
#--------------------------------------------------------------#
# Launch [pg_bootstrap][pg_launch]
#--------------------------------------------------------------#
# pg_watchdog, pg_primary, pg_init, pg_pass, pg_replica
# pg_hba, patroni_reload, pg_patroni
- import_tasks: patroni.yml
tags: [ pg_bootstrap, postgres, patroni, pg_launch ]
when: patroni_enabled|bool
#--------------------------------------------------------------#
# Users [pg_provision][pg_user]
#--------------------------------------------------------------#
# pg_user_config, pg_user_create
- include_tasks: user.yml
tags: [ pg_provision, pg_user ]
when: pg_provision|bool
vars: {user: "{{ item }}" }
with_items: "{{ pg_users }}"
#--------------------------------------------------------------#
# Databases [pg_provision][pg_db]
#--------------------------------------------------------------#
# pg_db_drop, pg_db_config, pg_db_create, pg_db_baseline
- include_tasks: database.yml
when: pg_provision|bool
tags: [ pg_provision, pg_db ]
vars: { database: "{{ item }}" }
with_items: "{{ pg_databases }}"
#--------------------------------------------------------------#
# Backup [pg_backup][pgbackrest]
#--------------------------------------------------------------#
# pgbackrest_init, pgbackrest_backup
- import_tasks: pgbackrest.yml
when: pgbackrest_enabled|bool
tags: [ pg_backup, pgbackrest ]
#--------------------------------------------------------------#
# Crontab [pg_crontab]
#--------------------------------------------------------------#
# setup postgres dbsu crontab entries
- import_tasks: crontab.yml
tags: [ pg_crontab ]
#--------------------------------------------------------------#
# Pgbouncer [pg_access][pgbouncer]
#--------------------------------------------------------------#
# pgbouncer_dir, pgbouncer_config, pgbouncer_launch, pgbouncer_reload
# pgbouncer_hba, pgbouncer_user
- import_tasks: pgbouncer.yml
tags: [ pg_access, pgbouncer ]
when: pgbouncer_enabled|bool
#--------------------------------------------------------------#
# VIP [pg_access][pg_vip]
#--------------------------------------------------------------#
# pg_vip_config, pg_vip_launch
- import_tasks: vip.yml
tags: [ pg_access, pg_vip ]
#--------------------------------------------------------------#
# Domain Name [pg_access][pg_dns]
#--------------------------------------------------------------#
# pg_dns_ins, pg_dns_cls
- import_tasks: dns.yml
when: dns_enabled|bool
tags: [ pg_access, pg_dns ]
#--------------------------------------------------------------#
# Service (Local HAProxy Provider) [pg_access][pg_service]
#--------------------------------------------------------------#
# pg_service_config, pg_service_reload
- import_tasks: service_local.yml
tags: [ pg_access, pg_service ]
when: pg_service_provider == '' or pg_service_provider not in groups
#--------------------------------------------------------------#
# Service (Remote HAProxy Provider) [pg_access][pg_service]
#--------------------------------------------------------------#
# pg_service_config, pg_service_reload
- import_tasks: service_remote.yml
tags: [ pg_access, pg_service ]
when: pg_service_provider != '' and pg_service_provider in groups and pg_role == 'primary'
#--------------------------------------------------------------#
# Summary [pg_done]
#--------------------------------------------------------------#
- name: pgsql init done
tags: pg_done
connection: local
debug:
msg: "postgres://{{ inventory_hostname }}{% if pg_port|int != 5432 %}:{{ pg_port }}{% endif %}/{{ pg_primary_db|default('postgres') }} | {% for db in pg_databases %}{{ db.name }} {% endfor %} | {% for user in pg_users %}{{ user.name }} {% endfor %}"
...