Перейти к основному содержимому

Установка Pangolin DCS

Pangolin DCS является частью Pangolin Manager. Развертывание Pangolin DCS происходит поэтапно.

Ручная установка

Последовательность выполнения

Шаги процесса ручной установки модуля:

  1. Создание системных директорий, необходимых для работы Pangolin DCS.
  2. Конфигурирование Pangolin DCS.
  3. Добавление ролевой модели

Шаг 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

  1. Настройка 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>
  2. С помощью текстового редактора под пользователем 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. Добавление ролевой модели

  1. Перечитайте конфигурацию Pangolin Manager последовательно (сначала на узле мастер, затем на реплике и после на арбитре):

    sudo systemctl reload pangolin-manager
    sudo systemctl restart pangolin-manager
  2. Проверьте, что все узлы кластера доступны:

    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
  3. Под пользователем 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
  4. Перечитайте конфигурацию Pangolin Manager последовательно (сначала на узле мастер, затем на реплике и после на арбитре):

    Внимание!

    Убедитесь что в кофигурационном файле/etc/pangolin-manager/postgres.yml указаны актуальные данные аутентификации для пользователей в секции restapi:authentication и pangolin_dcs:restapi:.

    sudo systemctl reload pangolin-manager
    sudo systemctl restart pangolin-manager

Автоматизированная установка

  1. Заполнение параметров для базовой настройки при установке 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 и настройка каталогов с утилитами.

  2. Запуск процесса установки СУБД в конфигурации clsuter-patroni-dcs-pgbouncer.

  3. Настройка параметров Pangolin DCS (идентификатор кластера, состав кластера).

    Настройка параметров описана в следующих разделах.