feat: 纳管共享 etcd 与 k3s 外 PostgreSQL 高可用及备份
yaml / yaml (pull_request) Successful in 41s
ansible / collection-test (pull_request) Successful in 2m41s
terraform / validate (pull_request) Successful in 2m41s
ansible / lint (pull_request) Successful in 4m36s

This commit is contained in:
2026-09-25 19:34:48 +00:00
parent acd4b55722
commit 3a2fe5fa0c
92 changed files with 4211 additions and 0 deletions
@@ -0,0 +1,40 @@
---
pg_major: 18
pg_patroni_version: 4.1.5
pg_bao_url: https://bao.ad.ddupan.top:8200
pg_bao_token: "{{ lookup('env', 'BAO_TOKEN') }}"
pg_config_root: /etc/homelab-postgresql
pg_data_root: /var/lib/homelab-postgresql
pg_bin_dir: /usr/lib/postgresql/18/bin
pg_patroni_bin: /opt/homelab-patroni/bin/patroni
pg_allow_initialize: false
# 仅存放 Bao 路径,值必须在控制端 no_log 读取;不从失效读请求推断秘密不存在。
pg_secret_paths:
prod: infra/postgresql/prod
dev: infra/postgresql/dev
pg_etcd_secret_path: infra/etcd/consumers/patroni-pg-prod
pg_etcd_endpoints: ['192.168.10.127:2379', '10.60.0.20:2379', '10.60.0.21:2379']
pg_profiles:
prod:
user: pgprod
port: 5432
api_port: 8008
dns: pg-prod.ad.ddupan.top
memory_high: 768M
memory_max: 1G
shared_buffers: 128MB
max_connections: 80
dev:
user: pgdev
port: 5433
dns: pg-dev.ad.ddupan.top
memory_high: 256M
memory_max: 384M
shared_buffers: 32MB
max_connections: 30
# 客户端网络范围;HBA 仍需独立的 TLS + SCRAM 身份认证。
pg_client_cidrs: ['192.168.10.0/24', '10.60.0.0/24', '10.42.0.0/16']
pg_replication_addresses: ['192.168.10.127/32', '10.60.0.20/32']
pg_repo_host: 10.60.0.21
pg_repo_user: pgbackup
pg_repo_path: /var/lib/homelab-pgbackrest
@@ -0,0 +1,44 @@
---
all:
vars:
ansible_user: root
children:
pg_hosts:
hosts:
pg-laptop:
ansible_connection: local
ansible_user: panxiao81
ansible_host: 192.168.10.127
pg_address: 192.168.10.127
pg_instances: [prod, dev]
pg-pve1:
ansible_host: 10.60.0.20
pg_address: 10.60.0.20
pg_instances: [prod]
pg_repository:
hosts:
pg-pve2:
ansible_host: 10.60.0.21
pg_pve:
hosts:
pve1:
ansible_host: 192.168.10.4
pg_lxc_id: 150
pg_lxc_hostname: etcd-pve1
pg_lxc_memory: 1536
pg_lxc_mount: /var/lib/homelab-postgresql/prod
pg_lxc_disk_gb: 16
pve2:
ansible_host: 192.168.10.7
pg_lxc_id: 151
pg_lxc_hostname: etcd-pve2
pg_lxc_memory: 768
pg_lxc_mount: /var/lib/homelab-pgbackrest
pg_lxc_disk_gb: 32
pg_proxy:
hosts:
pg-proxy-vyos:
ansible_host: 192.168.10.2
ansible_user: vyos
ansible_connection: ssh
ansible_python_interpreter: /usr/bin/python3