Проект Automated database platform for PostgreSQL позволяет автоматизировать разворачивание кластера PostgreSQL версий 10-17 на версиях Linux
Debian: 11, 12
Ubuntu: 22.04, 24.04
CentOS Stream: 9
Oracle Linux: 8, 9
Rocky Linux: 8, 9
AlmaLinux: 8, 9
В целом, все достаточно просто. Поехали
Установка контейнера autobase-console
В моем случае ip адрес ВМ 10.10.88.29 и пароль 12345678
1 2 3 4 5 6 7 8 9 10 11 12 13 |
docker run -d --name autobase-console \ --publish 80:80 \ --publish 8080:8080 \ --env PG_CONSOLE_API_URL=http://10.10.88.29:8080/api/v1 \ --env PG_CONSOLE_AUTHORIZATION_TOKEN=12345678 \ --env PG_CONSOLE_DOCKER_IMAGE=autobase/automation:latest \ --volume console_postgres:/var/lib/postgresql \ --volume /var/run/docker.sock:/var/run/docker.sock \ --volume /tmp/ansible:/tmp/ansible \ --restart=unless-stopped \ autobase/console:latest |
Или так
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
mkdir /opt/autobase/ cat <<EOF | sudo tee /opt/autobase/docker-compose.yml services: autobase-console: image: autobase/console:latest container_name: autobase-console hostname: autobase-console ports: - '80:80' - '8080:8080' environment: PG_CONSOLE_API_URL: http://10.10.88.29:8080/api/v1 PG_CONSOLE_AUTHORIZATION_TOKEN: 12345678 PG_CONSOLE_DOCKER_IMAGE: autobase/automation:latest volumes: - ./console_postgres:/var/lib/postgresql - /var/run/docker.sock:/var/run/docker.sock - /tmp/ansible:/tmp/ansible restart: unless-stopped EOF docker-compose up -d |
Статистика HAProxy
Состояние кластера patroni
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
patronictl -c /etc/patroni/patroni.yml list 2025-02-06 16:47:52,851 - WARNING - /usr/lib64/python3.9/site-packages/cryptography/hazmat/backends/openssl/x509.py:14: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now. warnings.warn( + Cluster: pgcluster (7468271375446116598) ---+----+-----------+ | Member | Host | Role | State | TL | Lag in MB | +--------+--------------+---------+-----------+----+-----------+ | node1 | 10.10.88.113 | Leader | running | 1 | | | node2 | 10.10.88.114 | Replica | streaming | 1 | 0 | | node3 | 10.10.88.115 | Replica | streaming | 1 | 0 | +--------+--------------+---------+-----------+----+-----------+ |
1 2 3 |
pip install pyOpenSSL --upgrade --user |
Состояние кластера etcd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
ETCDCTL_API=3 etcdctl --write-out=table --endpoints="https://10.10.88.113:2379,https://10.10.88.114:2379,https://10.10.88.115:2379" \ endpoint status \ --key="/etc/etcd/tls/server.key" \ --cert="/etc/etcd/tls/server.crt" \ --cacert="/etc/etcd/tls/ca.crt" +---------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ | ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS | +---------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ | https://10.10.88.113:2379 | b1cbb636ff7d1948 | 3.5.17 | 57 kB | true | false | 2 | 101 | 101 | | | https://10.10.88.114:2379 | ea0e82108a02711 | 3.5.17 | 57 kB | false | false | 2 | 101 | 101 | | | https://10.10.88.115:2379 | a99d0a09dfb7f44c | 3.5.17 | 57 kB | false | false | 2 | 101 | 101 | | +---------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+ |
Общая информация, для подключения к кластеру
Тут можно увидеть VIP адрес, пароль и порт подключения к Postgres