Ручная пошаговая установка кластерной конфигурации (cluster)
При переходе к данному разделу предполагается, что изучена информация общего блокаручной установки.
Данный раздел рассматривает процесс ручной пошаговой установки экземпляра СУБД Pangolin и компонентов в составе продукта в кластерной конфигурации. Для полноценной установки потребуется наличие трех нод: мастер, реплика и арбитр.
Для кластерной конфигурации все действия необходимо выполнить поочередно на каждом узле экземпляра СУБД. На каждом узле шаги инструкции выполняются полностью (установка экземпляра СУБД и компонентов), если явно не указано иное. Для узла арбитра выполняются только те этапы, которые помечены как применимые для данного узла.
Все приведенные команды и примеры заполненных конфигураций являются примерами. Их необходимо отредактировать в соответствии с требуемыми параметрами и конфигурациями.
Обозначения
В инструкции используются переменные для динамической настройки. Перед выполнением команд скорректируйте значение относительно реализуемого сценария установки:
{OS}- операционная система;{version_OS}- версия операционной системы;{path}- полный путь к директорииdistributiveили путь к дистрибутиву;{product_version}- версия продукта (текущая версия: 6.7.6);{short_version}- короткая версия продукта (текущая: 6.7);{base_version}- основная версия продукта (текущая: 6);{version_component}- версия компонента.
Подготовка к ручной установке
-
Проверьте что порт для работы СУБД (по умолчанию
5432) не заблокирован на уровне сети или виртуальной машины. -
Проверьте занятость
uid/gid. Для установки экземпляра СУБД Pangolin по умолчанию используется:uid/gid: 26дляpostgres,uid/gid: 126дляkmadmin_pgиgid: 226для группыpangolin_users. Пример команды проверки:getent passwd | grep 26
getent passwd | grep 126
getent group | grep 226В случае занятости данных
uid/gidпереопределите переменные через изменение значений. Пример измененияuid/gidдля пользователяpostgres:sudo POSTGRES_USER_GUID=<unused_uid> POSTGRES_GROUP_GUID=<unused_gid> dnf install pangolin-dbms-6.7ВажноИзменение актуально для ОС Astra Linux, в связи с занятостью
gid: 126группойtapeи для ОС Альт СП 10 версии 2 (занятостьgid=26):error: group with gid=126 already existsСписок переменных окружения, использующих
uid/gid:POSTGRES_USER_GUID # изменение uid пользователя postgres (по умолчанию 26)
POSTGRES_GROUP_GUID # изменение gid группы postgres (по умолчанию 26)
KMADMIN_PG_USER_GUID # изменение uid пользователя kmadmin_pg (по умолчанию 126)
KMADMIN_PG_GROUP_GUID # изменение gid группы kmadmin_pg (по умолчанию 126)
PANGOLIN_USERS_GROUP_GUID # изменение gid группы pangolin_users (по умолчанию 226) -
Убедитесь, что дистрибутив распакован с использованием скрипта
unpacker-distrib.sh(с ключом--not-pack) и каталог дистрибутива присутствует на всех узлах кластера.
Использование мета-пакетов может упростить дальнейшие шаги установки rpm/deb-пакетов. Особенно в случае, когда требуется установка нескольких компонентов.
Установка экземпляра СУБД Pangolin
Данный раздел описывает сценарий процесса ручной установки на операционные системы (ОС), такие как:
- Platform V SberLinux OS Server;
- РЕД ОС;
- CentOS;
- Astra Linux;
- Альт СП / Альт Сервер.
Для уточнения поддерживаемых версий указанных ОС обратитесь к списку в разделе «Системные требования».
Для развертывания СУБД Pangolin на окружении 1С выполните шаги с пометкой «для окружения 1С», вместо «обычное окружение».
Порядок установки
Шаги процесса ручной установки:
- Установка rpm/deb-пакетов серверной и клиентской части СУБД.
- Создание системных директорий необходимых для работы СУБД.
- Выполнение импорта лицензии.
- Подготовка переменных окружения.
- Инициализация кластера СУБД.
- Конфигурирование СУБД Pangolin.
- Запуск СУБД.
- Проверка результата.
- Ознакомление с дальнейшими шагами.
Шаг 1. Установка rpm/deb-пакетов
Установите пакеты серверной и клиентской части СУБД:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install /{path}/pangolin-dbms-{short_version}-{product_version}-{OS}.x86_64.rpm
sudo dnf install /{path}/pangolin-dbms-{short_version}-client-{product_version}-{OS}.x86_64.rpm
sudo apt install /{path}/pangolin-dbms-{short_version}-{product_version}_amd64.deb
sudo apt install /{path}/pangolin-dbms-{short_version}-client_{product_version}_amd64.deb
sudo apt-get install /{path}/pangolin-dbms-{short_version}-{product_version}-altlinux{version_OS}.x86_64.rpm
sudo apt-get install /{path}/pangolin-dbms-{short_version}-client-{product_version}-altlinux{version_OS}.x86_64.rpm
Пример заполненной команды:
sudo dnf -y install ~/distributive/pangolin-dbms-6.7-6.7.6-sberlinux8.x86_64.rpm
sudo dnf -y install ~/distributive/pangolin-dbms-6.7-client-6.7.6-sberlinux8.x86_64.rpm
В случае использования настроенного локального репозитория используйте упрощенные команды для установки пакетов. Например, sudo dnf -y install pangolin-dbms-{short_version}. Пакетный менеджер самостоятельно найдет нужный пакет в репозитории и предложит его к установке.
Шаг 2. Создание системных директорий
Создайте директории /pgdata, /pangolinlogs:
sudo mkdir -p /pgdata /pangolinlogs/pangolin-dbms
sudo chown -R postgres:postgres /pgdata /pangolinlogs
sudo chmod -R 700 /pgdata /pangolinlogs
Шаг 3. Импорт лицензии
Для целей соблюдения лицензионных условий продукта применяется файл, содержащий параметры лицензии и подписанный цифровой подписью с использованием приватного ключа.
Лицензия поставляется вместе с дистрибутивом в личном кабинете клиента. В случае ее отсутствия, обратитесь к менеджеру.
Добавьте файл с лицензией license.json в папку /opt/pangolin_license/ и назначьте необходимые права:
sudo mkdir -p /opt/pangolin_license
sudo mv /{path}/license.json /opt/pangolin_license
sudo chown -R postgres:pangolin_users /opt/pangolin_license
sudo chmod 770 /opt/pangolin_license
sudo chmod 440 /opt/pangolin_license/license.json
Шаг 4. Подготовка переменных окружения
Из под пользователя postgres измените файл .bash_profile (в случае ОС Astra Linux - .profile) при помощи текстового редактора, добавив следующие строки с переменными окружения (замените переменные в скобках { } на актуальные значения). После перечитайте переменные окружения для .bash_profile/.profile:
sudo -iu postgres
umask 022
export PG_LICENSE_PATH=/opt/pangolin_license
export PGHOME=/usr/pangolin
export PGHOME_CLIENT=/usr/pangolin-dbms-client
export PGDATABASE=postgres
export PGUSER=postgres
export PGHOST=127.0.0.1
export PGPORT=5432
export PGCLIENTENCODING=UTF8
export PGDATA=/pgdata/0{base_version}/data
export MANPATH=$MANPATH:$PGHOME/share/man
. ~/.bash_profile
exit
Шаг 5. Инициализация кластера СУБД
Шаги 5,6,7 выполняются только на узле мастер.
Инициализируйте новый кластер СУБД Pangolin:
-
обычное окружение:
sudo -iu postgres
initdb --locale en_US.UTF-8 -k -D /pgdata/0{base_version}/data/
exit -
окружение с 1С:
sudo -iu postgres
initdb --locale ru_RU.UTF-8 -k -D /pgdata/0{base_version}/data/
exitДля окружения с 1С крайне важно указать локаль, в будущем она будет использоваться для инициализации БД, которая создает 1С.
Шаг 6. Конфигурирование СУБД Pangolin
-
Отредактируйте конфигурационный файл
/pgdata/0{base_version}/data/postgresql.conf:-
Рекомендуется выполнять конфигурирование СУБД при помощи вспомогательного инструмента Pangolin Tuner. Описание утилиты и шаги по запуску описаны в подразделе «Установка компонента Pangolin Tuner».
-
С помощью текстового редактора под пользователем
postgresизмените значение конфигурационного параметраenabled_extra_auth_methodsс указанием методов аутентификации (эти же методы нужно будет указать вpg_hba.confв следующем пункте) к использованию:-
обычное окружение:
enabled_extra_auth_methods = 'peer, trust' -
окружение с 1С:
enabled_sec_admin_extra_auth_methods = 'md5,trust,peer,cert'
enabled_extra_auth_methods = 'md5,trust,peer,cert'
ПримечаниеПараметр
enabled_sec_admin_extra_auth_methodsотвечает за список дополнительно разрешенных к использованию методов аутентификации для ролей администраторов безопасности, тогда как вenabled_extra_auth_methodsпередается список для всех остальных ролей. -
-
С помощью текстового редактора под пользователем
postgresзадайте для параметраlisten_addressesзначение0.0.0.0, чтобы разрешить подключение к СУБД по IP-адресу сервера Pangolin.listen_addresses = '0.0.0.0'
-
-
С помощью текстового редактора под пользователем
postgresизмените конфигурационный файл/pgdata/0{base_version}/data/pg_hba.conf(добавьте строки в конец файла):local all all peer
host all all 0.0.0.0/0 trust
Шаг 7. Запуск СУБД
Запустите экземпляр СУБД Pangolin:
sudo -iu postgres
pg_ctl -D /pgdata/0{base_version}/data/ -l /pangolinlogs/pangolin-dbms/postgresql.log start
exit
Результат
После завершения процесса установки экземпляра СУБД рекомендуется провести чек-лист проверки корректности работы.
Установка компонентов продукта СУБД Pangolin
Установка компонента Pangolin Tuner
Pangolin Tuner — это инструмент для работы с конфигурацией Postgres-like СУБД, предназначенный для оптимизации производительности баз данных в различных сценариях использования. Инструмент автоматически определяет оптимальные настройки в зависимости от профиля рабочей нагрузки / профиля использования. Это позволяет значительно сократить время настройки и минимизировать риски, связанные с неправильной конфигурацией. Подробнее смотрите в отдельном разделе про утилиту Pangolin Tuner.
Порядок установки
Шаги процесса ручной установки компонента:
- Установка rpm/deb-пакета утилиты.
- Описание процесса оптимизации конфигурационного файла СУБД.
Шаг 1. Установка rpm/deb-пакета
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install /{path}/utilities/pangolin-tuner-{version_component}-{OS}.x86_64.rpm
sudo apt install /{path}/utilities/pangolin-tuner-{version_component}_amd64.deb
sudo apt-get install /{path}/utilities/pangolin-tuner-{version_component}-altlinux{version_OS}.x86_64.rpm
Пример заполненной команды:
sudo dnf -y install ~/distributive/utilities/pangolin-tuner-1.1.0-sberlinux8.x86_64.rpm
Шаг 2. Оптимизация конфигурационного файла СУБД
-
Выберите профиль рабочей нагрузки, соответствующий конкретным потребностям для использования оптимальных значений параметров.
-
Запустите утилиту Pangolin Tuner с необходимыми настройками и сконфигурируйте файл под нужный профиль:
-
Профиль OLTP:
sudo -iu postgres
/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/0{base_version}/data/postgresql.conf --profile oltp --output-file /pgdata/0{base_version}/data/postgresql.conf.oltp
exit -
Профиль OLAP:
sudo -iu postgres
/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/0{base_version}/data/postgresql.conf --profile olap --output-file /pgdata/0{base_version}/data/postgresql.conf.olap
exit -
Профиль 1C (для окружения 1С):
sudo -iu postgres
/opt/pangolin-tuner/bin/pangolin-tuner --config /pgdata/0{base_version}/data/postgresql.conf --profile 1c --output-file /pgdata/0{base_version}/data/postgresql.conf.1c
exit
-
-
Примените созданный конфигурационный файл:
sudo -iu postgres
mv /pgdata/0{base_version}/data/postgresql.conf.oltp /pgdata/0{base_version}/data/postgresql.conf
chmod 600 /pgdata/0{base_version}/data/postgresql.conf
exitСведенияPangolin Tuner не конфигурирует индивидуальные настройки, связанные с количеством подключений либо с активацией расширений. Данные параметры необходимо настроить самостоятельно.
Описание параметров, по которым утилита Pangolin Tuner формирует значение, расположено в разделе «Тюнинг параметров» документа «Руководство администратора».
Установка компонента Pangolin Pooler
Компонент Pangolin Pooler – это доработанная версия PgBouncer, а именно программа, управляющая пулом соединений Pangolin DBMS. Любое клиентское приложение может подключиться к Pangolin Pooler, как если бы это был непосредственно сервер DBMS, и Pangolin Pooler создаст подключение к реальному серверу, либо задействует одно из ранее установленных подключений. Предназначение Pangolin Pooler — минимизировать издержки, связанные с установлением новых подключений к Pangolin DBMS.
Подробное описание компонента представлено в разделе «Администрирование Pangolin Pooler» документа «Руководство администратора».
Порядок установки
Шаги процесса ручной установки компонента:
- Установка rpm/deb-пакета компонента Pooler.
- Создание системных директорий, необходимых для работы компонента.
- Конфигурирование Pangolin Pooler.
- Настройка ротации журналов.
- Запуск компонента.
Шаг 1. Установка rpm/deb-пакета
Выполните установку компонента Pangolin Pooler под пользователем root:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install /{path}/pangolin-pooler-{version_component}-{OS}.x86_64.rpm
sudo apt install /{path}/pangolin-pooler-{version_component}-{OS}_amd64.deb
sudo apt-get install /{path}/pangolin-pooler-{version_component}-{OS}.x86_64.rpm
Пример заполненной команды:
sudo dnf install -y ~/distributive/pangolin-pooler-1.5.6-sberlinux8.x86_64.rpm
Шаг 2. Создание системных директорий
Создайте директории /pangolinlogs/pangolin-pooler:
sudo mkdir -p /pangolinlogs/pangolin-pooler
sudo chown -R postgres:postgres /pangolinlogs
sudo chmod -R 700 /pangolinlogs
Шаг 3. Конфигурирование Pangolin Pooler
-
С помощью текстового редактора под пользователем
postgresотредактируйте файл/etc/pangolin-pooler/pangolin-pooler.ini, заполнив поля значениями, соответствующими данным вашего стенда:Пример файла pangolin-pooler.ini с минимальными настройками
[databases]
* = host=<ip-address> port=<port>
[pgbouncer]
listen_port = 6544
listen_addr = *
auth_type = scram-sha-256
auth_file = /etc/pangolin-pooler/userlist.txt
logfile = /pangolinlogs/pangolin-pooler/pangolin-pooler.log
pidfile = /var/run/pangolin-pooler/pangolin-pooler.pid
admin_users = pgbouncer -
С помощью текстового редактора под пользователем
postgresизмените файл/etc/pangolin-pooler/userlist.txt, заполнив поля значениями, соответствующими данным вашего стенда:"<user>" "<password>"Пример файла
userlist.txt:"user" "qwerty"Или в засекреченном виде:
"user" "md5175c641eaed0b6c05ae8444b73d789f0"
Шаг 4. Настройка ротации журналов
-
С помощью текстового редактора под пользователем
rootизмените файл/opt/pangolin-pooler/share/doc/logrotate/pangolin-pooler, заполнив поля значениями, соответствующими данным вашего стенда:Пример файла
pangolin-pooler:/pangolinlogs/pangolin-pooler/pangolin-pooler.log {
rotate 10
su postgres postgres
missingok
sharedscripts
notifempty
compress
daily
create 0600 postgres postgres
postrotate
/bin/kill -HUP `cat /var/run/pangolin-pooler/pangolin-pooler.pid 2> /dev/null` 2>/dev/null ||true
endscript
} -
Перенесите готовый файл в системный каталог ротации логов и назначьте права:
sudo cp /opt/pangolin-pooler/share/doc/logrotate/pangolin-pooler /etc/logrotate.d/pangolin-pooler
sudo chown postgres:postgres /etc/logrotate.d/pangolin-pooler
sudo chmod 0644 /etc/logrotate.d/pangolin-pooler
Шаг 5. Запуск Pangolin Pooler
-
Произведите запуск службы Pangolin Pooler:
sudo systemctl restart pangolin-pooler -
Проверьте корректность запуска и состояние сервиса. Пример статуса:
sudo systemctl status pangolin-poolerПример успешного старта сервиса pangolin-pooler
● pangolin-pooler.service - Pangolin Pooler connection pooling for PostgreSQL
Loaded: loaded (/usr/lib/systemd/system/pangolin-pooler.service; disabled; preset: disabled)
Active: active (running) since Mon 2026-02-02 18:58:35 MSK; 4s ago
Process: 2292612 ExecStartPre=/bin/mkdir -p /var/run/pangolin-pooler (code=exited, status=0/SUCCESS)
Process: 2292613 ExecStartPre=/bin/chown -R postgres:postgres /var/run/pangolin-pooler (code=exited, status=0/SUCCESS)
Process: 2292614 ExecStart=/opt/pangolin-pooler/bin/pangolin-pooler -d ${POOLERCONF} (code=exited, status=0/SUCCESS)
Process: 2292617 ExecStartPost=/bin/sleep 1 (code=exited, status=0/SUCCESS)
Main PID: 2292616 (pangolin-pooler)
Tasks: 2 (limit: 50508)
Memory: 3.8M
CPU: 18ms
CGroup: /system.slice/pangolin-pooler.service
└─2292616 /opt/pangolin-pooler/bin/pangolin-pooler -d /etc/pangolin-pooler/pangolin-pooler.ini
Feb 02 18:58:34 srv-123 systemd[1]: Starting Pangolin Pooler connection pooling for PostgreSQL...
Feb 02 18:58:35 srv-123 systemd[1]: Started Pangolin Pooler connection pooling for PostgreSQL...
Установка компонента Pangolin Manager
Компонент Pangolin Manager – это доработанная версия Patroni, python-приложения для создания и управления Pangolin DBMS-кластерами, работающими на основе потоковой репликации.
Pangolin Manager - это оркестратор кластера Pangolin, который преобразует систему из двух и более узлов Pangolin в высокодоступный кластер с поддержкой контролируемого и аварийного переключения. Также он автоматизирует добавление, обновление и удаление реплик, и реализует одновременное изменение конфигурации Pangolin на всех узлах кластера.
Далее представлены шаги для установки Pangolin Manager. Предполагается, что выбран тип конфигурации cluster, так как данный компонент используется в кластерной конфигурации.
Все шаги процесса установки являются обязательными, кроме шагов с указанием признака в заголовке: опциональный.
Порядок установки
Шаги процесса ручной установки компонента:
- Установка rpm/deb-пакетов компонента и его зависимости.
- Создание пользователя для репликации.
- Добавление пользователя в засекреченного хранилища паролей (опциональный шаг).
- Создание системных директорий, необходимых для работы Pangolin Manager.
- Выбор распределенного хранилища конфигурации.
- Конфигурирование Pangolin Manager.
- Настройка перезагрузки компонентов (опциональный шаг).
- Запуск Pangolin Manager.
Шаг 1. Установка rpm/deb-пакетов
Выполните данный шаг также на арбитре, если выбран модуль Pangolin DCS, в качестве распределенного хранилища конфигурации.
-
Установите пакет
pangolin-manager-venv, который является обязательной зависимостью для пакетаpangolin-manager. Предварительно распакуйте архив3rdparty.tar.gz:tar -xzf /{path}/3rdparty/3rdparty.tar.gz -C /{path}/3rdparty/- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install /{path}/3rdparty/pangolin-manager-venv/pangolin-manager-venv-{version_component}-{OS}.x86_64.rpmsudo apt install /{path}/3rdparty/pangolin-manager-venv/pangolin-manager-venv-{version_component}_amd64.debsudo apt-get install /{path}/3rdparty/pangolin-manager-venv/pangolin-manager-venv-{version_component}-{OS}.x86_64.rpmПример заполненной команды:
tar -xzf ~/distributive/3rdparty/3rdparty.tar.gz -C ~/distributive/3rdparty/
sudo dnf install -y ~/distributive/3rdparty/pangolin-manager-venv/pangolin-manager-venv-1.1.2-sberlinux8.x86_64.rpm -
Установите пакет
pangolin-manager:- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install /{path}/pangolin-manager-{version_component}-{OS}.x86_64.rpmsudo apt install /{path}/pangolin-manager-{version_component}_amd64.debsudo apt-get install /{path}/pangolin-manager-{version_component}-{OS}.x86_64.rpmПример заполненной команды:
sudo dnf install -y ~/distributive/pangolin-manager-2.1.19-sberlinux8.x86_64.rpm
Шаг 2. Создание пользователя для репликации
Шаг 2 выполняется только на узле мастер.
-
Создайте пользователя для работы репликации в СУБД Pangolin с паролем согласно парольной политике только на мастере:
sudo -iu postgres
psql -c "CREATE USER patroni WITH ENCRYPTED PASSWORD '<sample_password>';"
exit -
Отключите срок действия пароля и выставьте лимит подключений только на мастере:
sudo -iu postgres
psql -c "ALTER ROLE patroni LOGIN SUPERUSER REPLICATION VALID UNTIL 'infinity' CONNECTION LIMIT 5;"
exit
Шаг 3. Добавление пользователя в засекреченного хранилища паролей (опциональный)
Выполните данный шаг при использовании функциональности засекречивания паролей.
Добавьте пользователя СУБД, созданного на предыдущем шаге, в хранилище на мастере и на реплике:
sudo -iu postgres
/usr/pangolin/bin/pg_auth_config add -h $HOSTNAME -p 5432 -U patroni -d postgres
/usr/pangolin/bin/pg_auth_config add -h $HOSTNAME -p 5432 -U patroni -d replication
/usr/pangolin/bin/pg_auth_config add -h localhost -p 5432 -U patroni -d postgres
/usr/pangolin/bin/pg_auth_config add -h localhost -p 5432 -U patroni -d replication
exit
Шаг 4. Создание системных директорий
Выполните данный шаг также на арбитре, если выбран модуль Pangolin DCS, в качестве распределенного хранилища конфигурации.
Создайте директорию /pangolinlogs/pangolin-manager на всех узлах кластера:
sudo mkdir -p /pangolinlogs/pangolin-manager
sudo chown -R postgres:postgres /pangolinlogs
sudo chmod -R 700 /pangolinlogs
Шаг 5. Выбор распределенного хранилища конфигурации
Для установки распределенного хранилища конфигурации выберите одну из инструкций:
Шаг 6. Конфигурирование Pangolin Manager
Выполните данный шаг также на арбитре, если выбран модуль Pangolin DCS, в качестве распределенного хранилища конфигурации.
При установке пакетаpangolin-manager создается конфигурационный файл Pangolin Manager - /etc/pangolin-manager/postgres.yml, содержащий значения переменных по умолчанию.
Заполнение конфигурационного файла postgres.yml требуется на всех узлах экземпляра СУБД (мастере, реплике, арбитре).
-
С помощью текстового редактора под пользователем
postgresотредактируйте в конфигурационный файл Pangolin Manager/etc/pangolin-manager/postgres.ymlследующие параметры:postgresql:parameters– необходимо вручную из уже существующего/pgdata/0{base_version}/data/postgresql.confперенесите параметры СУБД;postgresql:pg_hba– необходимо вручную из уже существующего/pgdata/0{base_version}/data/pg_hba.confперенесите параметры СУБД;log:dir- необходимо указать путь до логов компонента Pangolin Manager (/pangolinlogs/pangolin-manager/);scope– необходимо указать имя кластера (например,cluster);name– необходимо указать имя текущего сервера (hostname);postgresql:listen- необходимо указать адрес подключения к СУБД Pangolin (0.0.0.0:<port>);postgresql:connect_address- необходимо указать адрес подключения к СУБД Pangolin (hostname:<port>);postgresql:bin_dir- необходимо указать путь до исполняемых файлов серверной части (/usr/pangolin/bin);postgresql:bin_dir_client- необходимо указать путь до исполняемых файлов клиентской части (/usr/pangolin-dbms-client/bin);postgresql:data_dir- необходимо указать путь до файлов данных СУБД (/pgdata/0{base_version}/data/);restapi:listen- необходимо указать адрес для доступа к REST API утилиты Pangolin Manager (0.0.0.0:8008);restapi:connect_address- необходимо указать адрес подключения к REST API утилиты Pangolin Manager (hostname:8008);restapi:authentication:username- необходимо указать имя пользователя для доступа к REST API утилиты Pangolin Manager (pangolinmanager), который создается на шаге 8;restapi:authentication:password- необходимо указать пароль пользователя для доступа к REST API утилиты Pangolin Manager;postgresql:authentication:replication:username- необходимо указать имя пользователя репликации для аутентификации (patroni), который создается на шаге 2;postgresql:authentication:replication:password- необходимо указать пароль пользователя репликации для аутентификации;postgresql:authentication:superuser:username- необходимо указать имя пользователя для аутентификации (patroni), который создается на шаге 2;postgresql:authentication:superuser:password- необходимо указать пароль пользователя для аутентификации;tags- секцию необходимо оставить без изменений;bootstrap:dcs- секцию необходимо оставить без изменений;pangolin_dcsилиetcd- секции заполняются на шаге настройки распределенного хранилища.
Пример заполненного файла
/etc/pangolin-manager/postgres.yml:scope: cluster
name: abc-0.11
restapi:
listen: 0.0.0.0:8008
connect_address: abc-0.11:8008
authentication:
username: pangolinmanager
password: <sample_password>
bootstrap:
dcs:
ttl: 135
retry_timeout: 60
loop_wait: 10
maximum_lag_on_failover: 1048576
synchronous_mode: true
synchronous_mode_strict: false
postgresql:
parameters:
wal_log_hints: on
wal_level: replica
max_wal_senders: 10
max_replication_slots: 10
log:
dir: /pangolinlogs/pangolin-manager
postgresql:
listen: 0.0.0.0:5432
bin_dir: /usr/pangolin/bin
bin_dir_client: /usr/pangolin-dbms-client/bin
connect_address: abc-0.11:5432
data_dir: /pgdata/0{base_version}/data/
authentication:
replication:
username: patroni
password: <sample_password>
superuser:
username: patroni
password: <sample_password>
parameters:
port: 5432
listen_addresses: 0.0.0.0
pg_hba:
- host all patroni 127.0.0.1/32 scram-sha-256
- host all patroni <ip-address_master>/32 scram-sha-256
- host all patroni <ip-address_replica>/32 scram-sha-256
- host replication patroni 127.0.0.1/32 scram-sha-256
- host replication patroni <ip-address_master>/32 scram-sha-256
- host replication patroni <ip-address_replica>/32 scram-sha-256
tags:
nofailover: false
noloadbalance: false
clonefrom: false
nosync: false -
Для репликации и корректной работы Pangolin Manager, c помощью текстового редактора под пользователем
postgresна мастере добавьте следующие строки в конец конфигурационного файла СУБД/pgdata/0{base_version}/data/pg_hba.confна мастере:host all patroni 127.0.0.1/32 scram-sha-256
host all patroni <ip-address_master>/32 scram-sha-256
host all patroni <ip-address_replica>/32 scram-sha-256
host replication patroni 127.0.0.1/32 scram-sha-256
host replication patroni <ip-address_master>/32 scram-sha-256
host replication patroni <ip-address_replica>/32 scram-sha-256
Шаг 7. Настройка перезагрузки компонентов (опциональный)
Выполните данный шаг при наличии компонента Pangolin Pooler.
-
Под пользователем
postgresсоздайте файл/etc/pangolin-pooler/pangolin-pooler-restart.sh, который будет использовать Pangolin Manager при перезагрузке кластера для перезагрузки Pangolin Pooler (reload) и назначьте права:sudo -iu postgres
touch /etc/pangolin-pooler/pangolin-pooler-restart.sh
chmod 500 /etc/pangolin-pooler/pangolin-pooler-restart.sh
exit -
С помощью текстового редактора из-под
rootдобавьте в файл/etc/pangolin-pooler/pangolin-pooler-restart.shсодержимое:#!/bin/sh
sudo systemctl restart pangolin-pooler
Шаг 8. Запуск Pangolin Manager
-
Перечитайте обновленную конфигурацию Pangolin (reload):
sudo -iu postgres
pg_ctl reload
exit -
Запустите сервис
pangolin-managerпоследовательно, сначала на узле мастер, затем на реплике и после на арбитре, при необходимости:sudo systemctl start pangolin-manager -
Проверьте корректность запуска и состояние сервиса. Пример статуса:
sudo systemctl status pangolin-managerПример успешного старта сервиса pangolin-manager
● pangolin-manager.service - Runners to orchestrate a high-availability PostgreSQL
Loaded: loaded (/usr/lib/systemd/system/pangolin-manager.service; disabled; preset: disabled)
Active: active (running) since Mon 2026-02-02 20:58:12 MSK; 11ms ago
Process: 2325458 ExecStartPre=/bin/mkdir -p /var/run/pangolin-dbms (code=exited, status=0/SUCCESS)
Process: 2325459 ExecStartPre=/bin/chown -R postgres:postgres /var/run/pangolin-dbms (code=exited, status=0/SUCCESS)
Main PID: 2325464 (pangolin-manager)
Tasks: 1 (limit: 50508)
Memory: 2.7M
CPU: 16ms
CGroup: /system.slice/pangolin-manager.service
└─2325464 /opt/pangolin-manager/bin/pangolin-manager-bin/pangolin-manager.bin /etc/pangolin-manager/postgres.yml
Feb 02 20:58:12 srv-123 systemd[1]: Starting Runners to orchestrate a high-availability PostgreSQL...
Feb 02 20:58:12 srv-123 systemd[1]: Started Runners to orchestrate a high-availability PostgreSQL.
Feb 02 20:57:53 srv-123 pangolin-manager.bin[2325269]: 2026-02-02 20:57:53,336 INFO: Failed to import patroni.dcs.consul
Установка модуля Pangolin DCS
При переходе к данному этапу предполагается, чтоустановка Pangolin Manager уже пройдена.
Pangolin DCS — это модуль распределенного хранилища конфигурации внутри компонента Pangolin Manager, который реализует Raft-алгоритм.
Pangolin DCS является частью Pangolin Manager и может заменить сторонний компонент etcd. Развертывание Pangolin DCS происходит поэтапно.
Порядок установки
Шаги процесса ручной установки модуля:
- Создание системных директорий, необходимых для работы Pangolin DCS.
- Конфигурирование Pangolin DCS.
- Добавление ролевой модели
Шаг 1. Создание системных директорий
Создайте директории /pangolinlogs/pangolin-manager/raft и /pgdata на всех узлах кластера:
sudo mkdir -p /pangolinlogs/pangolin-manager/raft /pgdata
sudo chown -R postgres:postgres /pangolinlogs /pgdata
sudo chmod -R 700 /pangolinlogs /pgdata
Шаг 2. Конфигурирование Pangolin DCS
-
Настройка Pangolin Manager DCS осуществляется параметрами в секции
pangolin_dcsв конфигурационном файле Pangolin Manager/etc/pangolin-manager/postgres.yml. С помощью текстового редактора под пользователемpostgresотредактируйте конфигурационный файл Pangolin Manager/etc/pangolin-manager/postgres.ymlна всех узлах кластера:pangolin_dcs:self_addr– необходимо указать адрес для прослушивания соединений Raft (hostname:2481);pangolin_dcs:partner_addrs– необходимо указать список других узлов кластера (<hostname_replica>:2481,<hostname_arbiter_>:2481);pangolin_dcs:data_dir– необходимо указать путь к директории для хранения журнала операций и текущих значений ключей (/pgdata/0{base_version}/raft_data);pangolin_dcs:logfile– необходимо указать путь до файла логов (/pangolinlogs/pangolin-manager/raft/raft.log);pangolin_dcs:restapi:listen– необходимо указать адрес для доступа к REST API утилиты Pangolin DCS (0.0.0.0:8009);pangolin_dcs:restapi:connect_address– необходимо указать адрес подключения к REST API утилиты Pangolin DCS (hostname:8009);pangolin_dcs:restapi:authentication.username– необходимо указать имя пользователя для доступа к REST API утилиты Pangolin DCS (pangolindcs). Создается на следующем шаге Добавление ролевой модели;pangolin_dcs:restapi:authentication.password– необходимо указать пароль пользователя для доступа к REST API утилиты Pangolin DCS.
Пример заполненной секции
pangolin_dcsв файле/etc/pangolin-manager/postgres.yml:pangolin_dcs:
self_addr: abc-0.11:2481
partner_addrs: abc-0.12:2481,abc-0.13:2481
data_dir: /pgdata/0{base_version}/raft_data
logfile: /pangolinlogs/pangolin-manager/raft/raft.log
restapi:
listen: 0.0.0.0:8009
connect_address: abc-0.11:8009
partner_address: abc-0.12:8009,abc-0.13:8009
authentication:
username: pangolindcs
password: <sample_password> -
С помощью текстового редактора под пользователем
postgresвыставьте значение параметраinstaller.cluster_typeв конфигурационном файле Pangolin Manager/etc/pangolin-manager/postgres.ymlв значениеcluster-patroni-dcs-pgbouncerна мастере и на реплике.Пример корректно заполненного параметра
installer.cluster_type:postgresql:
parameters:
installer.cluster_type: cluster-patroni-dcs-pgbouncer
Дополнительная информация о конфигурировании DCS описана в разделе «Администрирование Pangolin DCS» в документе «Руководство администратора».
Шаг 3. Добавление ролевой модели
-
Перечитайте конфигурацию Pangolin Manager последовательно (сначала на узле мастер, затем на реплике и после на арбитре):
sudo systemctl reload pangolin-manager
sudo systemctl restart pangolin-manager -
Проверьте, что все узлы кластера доступны:
sudo -iu postgres
/opt/pangolin-manager/bin/pangolin-dcs-ctl member list
exitПример успешной работы узлов
abc-0.11, connected, True
abc-0.12, connected, False
abc-0.13, connected, False -
Под пользователем
postgresна узле арбитра выполните следующие команды для добавления ролевой модели:/opt/pangolin-manager/bin/pangolin-dcs-ctl user add root:'<root_password>'
/opt/pangolin-manager/bin/pangolin-dcs-ctl user add pangolindcs:'<sample_password>'
/opt/pangolin-manager/bin/pangolin-dcs-ctl user add pangolinmanager:'<sample_password>'
/opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password '<root_password>' role add pangolindcsapi
/opt/pangolin-manager/bin/pangolin-dcs-ctl role grant-permission pangolindcsapi readwrite --prefix /service/
/opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password '<root_password>' user grant-role pangolindcs pangolindcsapi
/opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password '<root_password>' user grant-role pangolinmanager pangolindcsapi
/opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password '<root_password>' auth enableПример успешного выполнения команд
[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl user add root:'root_password'
User root created
[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl user add pangolindcs:'sample_password'
User pangolindcs created
[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl user add pangolinmanager:'sample_password'
User pangolinmanager created
[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password 'root_password' role add pangolindcsapi
Role pangolindcsapi created
[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl role grant-permission pangolindcsapi readwrite --prefix /service/
Role pangolindcsapi updated
[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password 'root_password' user grant-role pangolindcs pangolindcsapi
Role pangolindcsapi is granted to user pangolindcs
[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password 'root_password' user grant-role pangolinmanager pangolindcsapi
Role pangolindcsapi is granted to user pangolinmanager
[postgres]$ /opt/pangolin-manager/bin/pangolin-dcs-ctl --user root --password 'root_password' auth enable
Authentication Enabled
Установка компонента etcd
При переходе к данному этапу предполагается, чтоустановка Pangolin Manager уже пройдена.
Etcd - это строго согласованное, распределенное хранилище информации в формате ключ-значение.
Существует модульPangolin DCS, который является частью Pangolin Manager и может заменить компонент etcd.
В кластерной конфигурации (Pangolin Manager+etcd) etcd устанавливается из стандартных репозиториев ОС. Все действия по установке etcd выполняются под системным пользователем root. Поддерживаема версия пакета стороннего компонента под разных ОС указана на странице «Системные требования».
Версии etcd 3.4.42, 3.5.28 и 3.6.9 не рекомендуются к использованию из-за проблем совместимости, возникающих в патчевых версиях компонента. Рекомендуемые версии etcd для эксплуатации: 3.4.23, 3.5.26, 3.6.5.
Порядок установки
Шаги процесса ручной установки компонента:
- Установка компонента.
- Создание системных директорий, необходимых для работы Pangolin DCS.
- Конфигурирование Pangolin Manager.
- Конфигурирование etcd.
- Создание service-файла etcd.
- Запуск etcd.
- Добавление ролевой модели.
Шаг 1. Установка компонента etcd
Важно чтобы версия etcd на всех устанавливаемых машинах была одинаковая.
Установите пакет etcd:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install -y etcd
sudo apt install -y etcd
sudo apt-get install -y etcd
Шаг 2. Создание системных директорий
-
Создайте на узле арбитра пользователя и группу postgres:
sudo useradd postgres -
Создайте директорию
/pangolinlogs/etcdна всех узлах кластера:sudo mkdir -p /pangolinlogs/etcd
sudo chown -R postgres:postgres /pangolinlogs
sudo chmod -R 700 /pangolinlogs
Шаг 3. Конфигурирование Pangolin Manager
-
Настройка Pangolin Manager DCS осуществляется параметрами в секции
etcdв конфигурационном файле Pangolin Manager/etc/pangolin-manager/postgres.yml. С помощью текстового редактора под пользователемpostgresотредактируйте конфигурационный файл Pangolin Manager/etc/pangolin-manager/postgres.ymlна всех узлах кластера:etcd:hosts– необходимо указать список узлов кластера (<ip-address_master>:2379,<ip-address_replica>:2379,<ip-address_arbiter>:2379);etcd:username– необходимо указать имя пользователя для доступа к REST API etcd (patronietcd), который создается на шаге 7;etcd:password– необходимо указать пароль пользователя для доступа к REST API etcd.
Пример заполненной секции
etcdв файле/etc/pangolin-manager/postgres.yml:etcd:
hosts: <ip-address_master>:2379,<ip-address_replica>:2379,<ip-address_arbiter>:2379
username: patronietcd
password: <sample_password> -
С помощью текстового редактора под пользователем
postgresвыставьте значение параметраinstaller.cluster_typeв конфигурационном файле Pangolin Manager/etc/pangolin-manager/postgres.ymlв значениеcluster-patroni-etcd-pgbouncerна мастере и на реплике.Пример корректно заполненного параметра
installer.cluster_type:postgresql:
parameters:
installer.cluster_type: cluster-patroni-etcd-pgbouncer
Шаг 4. Конфигурирование etcd
-
С помощью текстового редактора под пользователем
rootскорректируйте конфигурационный файл etcd/etc/etcd/etcd.confпо следующему шаблону:ETCD_NAME="<hostname -s>"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://<hostname>:2379"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://<hostname>:2380"
ETCD_INITIAL_CLUSTER_TOKEN="single"
ETCD_INITIAL_CLUSTER="<hostname -s master>=http://<hostname_master_>:2380,<hostname_ -s replica_>=http://<hostname_replica_>:2380,<hostname -s arbiter>=http://<hostname_arbiter_>:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_ELECTION_TIMEOUT="5000"
ETCD_HEARTBEAT_INTERVAL="1000"
ETCD_ENABLE_V2="true"
ETCD_LOG_OUTPUTS="/pangolinlogs/etcd/etcd.log"
ETCD_LOGGER="zap"Обозначения
Описание параметров
etcd.conf:ETCD_LISTEN_CLIENT_URLS— список ссылок, с которых собирается трафик клиентов;ETCD_ADVERTISE_CLIENT_URLS— список ссылок клиентов этого элемента кластера для публичной передачи. Передаваемые ссылки клиентов будут доступны системам, взаимодействующим с кластером etcd. Клиентские библиотеки обрабатывают эти ссылки для подключения к кластеру etcd;ETCD_LISTEN_PEER_URLS— список ссылок, с которых собирается трафик одноранговых узлов;ETCD_INITIAL_ADVERTISE_PEER_URLS— список ссылок пиров этого элемента кластера для передачи другим элемента кластера;ETCD_INITIAL_CLUSTER— исходная конфигурация кластера для начальной загрузки. То есть все узлы и их URL (конструкция выглядит следующим образом«host_name_1=http://ip_iddress:2379,host_name_2=http://ip_iddress:2379,host_name_3=http://ip_iddress:2379);ETCD_INITIAL_CLUSTER_STATE— исходное состояние кластера (newилиexisting);ETCD_INITIAL_CLUSTER_TOKEN— исходный токен кластера etcd во время начальной загрузки. При использовании нескольких кластеров позволяет избежать непреднамеренного взаимодействия между ними;ETCD_DATA_DIR- каталог, в котором находится база данных etcd, wal и снепшоты Etcd;ETCD_HEARTBEAT_INTERVAL— время (мс) периода проверки (heartbeat);ETCD_ELECTION_TIMEOUT— время (в мс) тайм-аута алгоритма выбора;ETCD_ENABLE_V2- поддержка версии API v2;ETCD_LOG_OUTPUTS- путь до логов etcd;ETCD_LOGGER- уровень детализации журнала.
-
Назначьте права на конфигурационный файл etcd
/etc/etcd/etcd.conf:sudo chmod 700 -R /etc/etcd /var/lib/etcd
sudo chown postgres:postgres -R /etc/etcd /var/lib/etcd
Шаг 5. Создание service-файла etcd
-
С помощью текстового редактора под пользователем
rootотредактируйте файл/usr/lib/systemd/system/etcd.serviceпо следующему шаблону:СведенияЕсли файл
etcd.serviceне был создан при установке пакета, создайте вручную.[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
User=postgres
## set GOMAXPROCS to number of processors
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) ionice -c2 -n0 /usr/bin/etcd"
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target -
Назначьте права на сервисный файл etcd
/usr/lib/systemd/system/etcd.service:sudo chmod 600 /usr/lib/systemd/system/etcd.service
sudo chown postgres:postgres /usr/lib/systemd/system/etcd.service -
Перечитайте конфигурацию systemd:
sudo systemctl daemon-reload
Шаг 6. Запуск etcd
-
Запустите etcd:
sudo systemctl start etcd -
Проверьте корректность запуска и состояния сервиса:
sudo systemctl status etcdПример запуска сервиса
● etcd.service - Etcd Server
Loaded: loaded (/usr/lib/systemd/system/etcd.service; disabled; preset: disabled)
Active: active (running) since Mon 2026-02-02 21:18:59 MSK; 48s ago
Main PID: 2332389 (etcd)
Tasks: 10 (limit: 50508)
Memory: 9.6M
CPU: 107ms
CGroup: /system.slice/etcd.service
└─2332389 /usr/bin/etcd
Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.522788+0300","caller":"etcdserver/server.go:2144","msg":"published local member to cluster through raft","local-memb>
Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.522829+0300","caller":"embed/serve.go:124","msg":"ready to serve client requests"}
Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.522929+0300","caller":"etcdmain/main.go:44","msg":"notifying init daemon"}
Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.523010+0300","caller":"etcdmain/main.go:50","msg":"successfully notified init daemon"}
Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.522898+0300","caller":"membership/cluster.go:587","msg":"set initial cluster version","cluster-id":"ead42cd4ad83b6eb>
Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.523078+0300","caller":"api/capability.go:75","msg":"enabled capabilities for version","cluster-version":"3.5"}
Feb 02 21:18:59 srv-123 bash[2332389]: {"level":"info","ts":"2026-02-02T21:18:59.523096+0300","caller":"etcdserver/server.go:2721","msg":"cluster version is updated","cluster-version":"3.5"} -
Проверьте состояние узлов кластера:
ETCDCTL_API=2 etcdctl --endpoints http://abs-0.11:2379,http://abs-0.12:2379,http://abs-0.13:2379 cluster-health
ETCDCTL_API=3 etcdctl --endpoints=http://abs-0.11:2379,http://abs-0.12:2379,http://abs-0.13:2379 member list -w tableПример успешного выполнения команд
[root]# ETCDCTL_API=2 etcdctl --endpoints http://abs-0.11:2379,http://abs-0.12:2379,http://abs-0.13:2379 cluster-health
member 50b3cea48056d248 is healthy: got healthy result from http://abs-0.11:2379
member a52b0ae6e860d8f8 is healthy: got healthy result from http://abs-0.12:2379
member ba15750e235af505 is healthy: got healthy result from http://abs-0.13:2379
cluster is healthy
[root]# ETCDCTL_API=3 etcdctl --endpoints=http://abs-0.11:2379,http://abs-0.12:2379,http://abs-0.13:2379 member list -w table
+------------------+---------+----------+----------------------+----------------------+------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER |
+------------------+---------+----------+----------------------+----------------------+------------+
| 50b3cea48056d248 | started | abs-0-11 | http://abs-0.11:2380 | http://abs-0.11:2379 | false |
| a52b0ae6e860d8f8 | started | abs-0-12 | http://abs-0.12:2380 | http://abs-0.12:2379 | false |
| ba15750e235af505 | started | abs-0-13 | http://abs-0.13:2380 | http://abs-0.13:2379 | false |
+------------------+---------+----------+----------------------+----------------------+------------+
Шаг 7. Добавление ролевой модели
-
Из под пользователя
postgresна узле арбитра выполните следующие команды для добавления ролевой модели:# для версии API v3
export ETCDCTL_API=3
etcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 user add root:'<root_password>'
etcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 user add patronietcd:'<sample_password>'
etcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 --user=root:'<root_password>' role add patroni
etcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 role grant-permission patroni readwrite --prefix=true /service/
etcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 --user=root:'<root_password>' user grant-role patronietcd patroni
etcdctl --endpoints=<hostname узла мастер>:2379,<hostname узла реплики>:2379,<hostname узла арбитр>:2379 --user=root:'<root_password>' auth enable
# для версии API v2
export ETCDCTL_API=2
etcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 user add root:'<root_password>'
etcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 user add patronietcd:'<sample_password>'
etcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 -u root:'<root_password>' role add patroni
etcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 role grant patroni -path '/service/*' -readwrite
etcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 -u root:'<root_password>' user grant patronietcd -roles patroni
etcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 -u root:'<root_password>' auth enable
etcdctl --endpoints=http://<hostname узла мастер>:2379,http://<hostname узла реплики>:2379,http://hostname узла арбитр>:2379 -u root:'<root_password>' role revoke guest -path '/*' --readwriteПример успешного выполнения команд
[root]# export ETCDCTL_API=3
[root]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 user add root:'root_password'
User root created
[root]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 user add patronietcd:'sample_password'
User patronietcd created
[root]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 --user=root:'root_password' role add patroni
Role patroni created
[root]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 role grant-permission patroni readwrite --prefix=true /service/
Role patroni updated
[pprb_dev]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 --user=root:'root_password' user grant-role patronietcd patroni
Role patroni is granted to user patronietcd
[pprb_dev]# etcdctl --endpoints=abs-0-11:2379,abs-0-12:2379,abs-0-13:2379 --user=root:'root_password' auth enable
Authentication Enabled
[root]# export ETCDCTL_API=2
[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 user add root:'root_password'
User root created
[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 user add patronietcd:'sample_password'
User patronietcd created
[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 -u root:'root_password' role add patroni
Role patroni created
[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 role grant patroni -path '/service/*' -readwrite
Role patroni updated
[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 -u root:'root_password' user grant patronietcd -roles patroni
User patronietcd updated
[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 -u root:'root_password' auth enable
Authentication Enabled
[root]# etcdctl --endpoints=http://abs-0-11:2379,http://abs-0-12:2379,http://abs-0-13:2379 -u root:'root_password' role revoke guest -path '/*' --readwrite
Role guest updated
Дальнейшие шаги
После завершения ручного пошагового конфигурирования кластера СУБД Pangolin доступно:
- настроить ролевую модель;
- установить необходимые расширения;
- установить утилиту резервного копирования CopyWala;
- подключить и настроить доступные функциональности безопасности продукта СУБД Pangolin и установить другие требуемые функциональности.