Установка
Эта страница переведена при помощи нейросети GigaChat.
Установка пакета в Linux
Для операционной системы могут быть доступны пакеты Patroni, созданные сообществом разработчиков PostgreSQL:
- RockyLinux, AlmaLinux;
- Debian и Ubuntu;
- SUSE Enterprise Linux.
Также можно найти пакеты для непосредственных зависимостей Patroni, такие как модули Python, которые могут быть недоступны в официальных репозиториях операционной системы.
Для получения дополнительной информации см. документацию по репозиторию PGDG.
Если используете операционную систему, производную от RedHat Enterprise Linux, также могут потребоваться пакеты из EPEL, для подробной информации см. документацию по репозиторию EPEL.
После установки репозитория PGDG для используемой ОС, можно будет установить Patroni.
Пакеты Patroni поддерживаются не разработчиками Patroni, а сообществом PostgreSQL. При необходимости поддержки, сначала попробуйте подключиться к PostgreSQL Slack.
Установка на версии Linux, производные от Debian
После установки репозитория PGDG, см. выше, установите Patroni с помощью команды apt:
apt-get install patroni
Установка на SUSE Enterprise Linux
Может потребоваться включить репозитории SUSE PackageHub для некоторых зависимостей. Подробнее см. документацию SUSE PackageHub.
Для SLES 15 с установленным репозиторием PGDG, см. выше, можно установить Patroni, используя команду:
zypper install patroni patroni-etcd
При включенном репозитории SUSE PackageHub, также можно установить etcd:
SUSEConnect -p PackageHub/15.5/x86_64
zypper install etcd
Обновление
Обновление Patroni - это очень простой процесс, просто обновите установку программного обеспечения и перезапустите сервис Patroni на каждом узле кластера.
Перезапуск сервиса Patroni приведет к перезагрузке базы данных PostgreSQL. В некоторых ситуациях это может привести к отказу основного узла в кластере, поэтому рекомендуется перевести кластер в режим обслуживания до завершения перезапуска сервиса Patroni.
Чтобы выполнить обновление patroni:
-
Переведите кластер в режим обслуживания, выполните следующую команду на одном из узлов patroni:
patronictl pause --wait -
Затем на каждом узле кластера выполните обновление пакета, необходимое для используемой ОС:
apt-get update && apt-get install patroni patroni-etcd -
Перезапустите процесс сервиса patroni на каждом узле:
systemctl restart patroni -
Возобновите мониторинг PostgreSQL с помощью patroni, чтобы вывести его из режима обслуживания:
patronictl resume --waitТеперь кластер будет полностью функционировать с новой версией Patroni.
Предварительные требования для Mac OS
Для установки требований на Mac выполните следующие действия:
brew install postgresql etcd haproxy libyaml python
Psycopg
Начиная с версии psycopg2-2.8, двоичная версия psycopg2 больше не будет устанавливаться по умолчанию. Установка его исходного кода требует компилятора C и dev-пакетов postgres+python. Поскольку в мире Python невозможно указать зависимость как psycopg2 OR psycopg2-binary придется решить, как ее устанавливать.
Есть несколько доступных вариантов:
-
С помощью диспетчера пакетов дистрибутива:
sudo apt-get install python3-psycopg2 # install psycopg2 module on Debian/Ubuntu
sudo yum install python3-psycopg2 # install psycopg2 on RedHat/Fedora/CentOS -
С помощью указания одного из бинарных файлов
psycopg,psycopg2илиpsycopg2в списке зависимостей при установке Patroni с помощьюpip.
Общая установка для pip
Patroni можно установить с помощью pip:
pip install patroni[dependencies]
где dependencies может быть либо пустым, либо состоять из одного или нескольких следующих элементов, описанных ниже.
etcd или etcd3
Модуль python-etcd для использования Etcd в качестве распределенного хранилища конфигурации (DCS).
consul
Модуль python-consul для использования Consul в качестве DCS.
zookeeper
Модуль kazoo, чтобы использовать Zookeeper в качестве DCS.
exhibitor
Модуль kazoo, чтобы использовать Exhibitor в качестве DCS (те же зависимости, что и для Zookeeper).
Kubernetes
Модуль Kubernetes для использования Kubernetes в качестве DCS в Patroni.
raft
Модуль pysyncobj для использования реализации Raft на Python в качестве DCS.
aws
boto3 для использования обратных вызовов AWS.
all
Все вышеперечисленное (кроме семейства psycopg).
psycopg
Модуль psycopg[binary]>=3.0.0
psycopg2
Модуль psycopg2>=2.5.4
psycopg2-binary
Бинарный модуль psycopg2.
Например, команда для установки Patroni вместе с psycopg3, зависимостями для Etcd в качестве DCS и обратными вызовами AWS выглядит следующим образом:
pip install patroni[psycopg3,etcd3,aws]
Обратите внимание, что внешние инструменты для вызова при создании реплики или пользовательских сценариев начальной загрузки (например, WAL-E) должны устанавливаться независимо от Patroni.