78 lines
3.8 KiB
YAML
Executable File
78 lines
3.8 KiB
YAML
Executable File
#!/usr/bin/env ansible-playbook
|
|
---
|
|
#==============================================================#
|
|
# File : pgsql-rm.yml
|
|
# Desc : remove pgsql from hosts
|
|
# Ctime : 2020-05-12
|
|
# Mtime : 2026-01-14
|
|
# Path : pgsql-rm.yml
|
|
# Docs : https://pigsty.io/docs/pgsql/playbook
|
|
# License : Apache-2.0 @ https://pigsty.io/docs/about/license/
|
|
# Copyright : 2018-2026 Ruohang Feng / Vonng (rh@vonng.com)
|
|
#==============================================================#
|
|
- name: PGSQL REMOVE
|
|
become: true
|
|
hosts: all
|
|
gather_facts: no
|
|
ignore_errors: true
|
|
vars:
|
|
#pg_safeguard: true # safeguard for pgsql remove, set to true halt remove execution
|
|
#pg_rm_data: true # remove postgres data during remove? true by default
|
|
#pg_rm_backup: true # remove pgbackrest backup during primary remove? true by default
|
|
#pg_rm_pkg: true # uninstall postgres packages during remove? true by default
|
|
roles: [ { role: node_id }, { role: pg_remove } ]
|
|
|
|
|
|
#--------------------------------------------------------------#
|
|
# Usage
|
|
#--------------------------------------------------------------#
|
|
# Remove pgsql cluster `pg-test`
|
|
# pgsql-rm.yml -l pg-test # remove cluster `pg-test`
|
|
# -e pg_rm_data=true # remove postgres data by default
|
|
# -e pg_rm_backup=true # remove postgres backup by default (when removing primary)
|
|
# -e pg_rm_pkg=false # do not uninstall pg packages by default, explicit override required
|
|
# -e pg_safeguard=false # safeguard is not enabled by default, if enabled, can be override with cli args
|
|
# It will abort if `pg_safeguard` is set to `true` explicitly
|
|
#
|
|
# Remove a pgsql replica:
|
|
# pgsql-rm.yml -l 10.10.10.13 # remove instance `10.10.10.13` from cluster `pg-test`
|
|
# pgsql.yml -l pg-test --tags=pg_service # refresh pg service after cluster shrink
|
|
#
|
|
#--------------------------------------------------------------#
|
|
# Utils
|
|
#--------------------------------------------------------------#
|
|
#
|
|
# bin/pgsql-rm pg-meta # remove pgsql cluster 'pg-meta'
|
|
# bin/pgsql-rm pg-test 10.10.10.13 # remove pgsql instance '10.10.10.13' from 'pg-test'
|
|
#
|
|
#--------------------------------------------------------------#
|
|
# Tasks
|
|
#--------------------------------------------------------------#
|
|
# pg_monitor : remove registration from victoria, grafana, nginx
|
|
# pg_deregister : remove pg monitoring targets from infra
|
|
# - rm_metrics : remove monitor target from victoria
|
|
# - rm_ds : remove datasource from grafana
|
|
# - rm_logs : remove logging target from vector
|
|
# - pg_exporter : remove pg_exporter (postgres monitoring)
|
|
# - pgbouncer_exporter : remove pgbouncer_exporter (pgbouncer monitoring)
|
|
# - pgbackrest_exporter : remove pgbackrest_exporter (pgbackrest monitoring)
|
|
#
|
|
# pg_access : remove pg service access
|
|
# - dns : remove pg dns records
|
|
# - vip : remove vip-manager
|
|
# - pg_service : remove pg service from haproxy
|
|
# - pgbouncer : remove pgbouncer connection middleware
|
|
#
|
|
# pg_crontab : remove postgres dbsu crontab
|
|
#
|
|
# postgres : remove postgres instances
|
|
# - pg_replica : remove all replicas
|
|
# - pg_primary : remove primary instance
|
|
# - pg_meta : remove metadata from dcs
|
|
#
|
|
# pg_backup : remove backup repo (disable with `pg_rm_bkup=false`)
|
|
# pg_data : remove postgres data (disable with `pg_rm_data=false`)
|
|
# pg_pkg : uninstall pg packages (disable with `pg_rm_pkg=false`)
|
|
# - pg_ext : uninstall postgres extensions alone
|
|
#--------------------------------------------------------------#
|
|
... |