Установка
Pangolin DCS является частью Pangolin Manager. Развертывание 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/07/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 -
Перечитайте конфигурацию Pangolin Manager последовательно (сначала на узле мастер, затем на реплике и после на арбитре):
Внимание!Убедитесь что в кофигурационном файле
/etc/pangolin-manager/postgres.ymlуказаны актуальные данные аутентификации для пользователей в секцииrestapi:authenticationиpangolin_dcs:restapi:.sudo systemctl reload pangolin-manager
sudo systemctl restart pangolin-manager
Автоматизированная установка
-
Заполните параметры для базовой настройки при установке Pangolin Manager.
Пример раздела с параметрами для установки Pangolin DCS в файле
custom_config_sample.yml:pangolin_dcs_params:
raft_data_dir: "{{ PGDATA.rstrip('data/') }}/raft_data"
dump_dir: "{{ PGDATA.rstrip('data/') }}/raft_dump"
logfile: "{{ PGLOGS }}/raft/raft.log"
heartbeat_interval: 1000
election_timeout: 5000
verify_client: optional
verify_server: true
no_tls1_3: false
pangolin_dcs_rest_api:
dcs_root: root
dcs_root_password:
dcs_client_user: pangolindcs
dcs_client_password: <password>
verify_client: optional
ciphers: DEFAULT:!SSLv1:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1
allowlist: ""примечаниеВ связи с добавлением утилит безопасности в основной пакет Pangolin Manager, на узле арбитра производится их настройка аналогично узлам с DBMS — создание пользователя безопасности
kmadmin_pgи настройка каталогов с утилитами. -
Запустите процесс установки СУБД в конфигурации
clsuter-patroni-dcs-pgbouncer. -
Настройте параметры Pangolin DCS (идентификатор кластера, состав кластера).
Настройка параметров описана в следующих разделах.