3 Установка и настройка программы

Перед началом установки "Спектра" необходимо убедиться в доступности хоста с ПО "Скала^р Геном" с хоста "Спектра". Проверить доступность можно при помощи команды ping. IP-адрес хоста с ПО "Скала^р Геном" можно узнать в инсталляционной карте Машины МБД.П. Если в выводе команды ping содержатся ошибки, необходимо убедиться в том, что:

  1. Виртуальная машина с ПО "Скала^р Геном" запущена на Узле управления. IP-адрес узла управления может быть уточнен в инсталляционной карте.

  2. Обеспечена сетевая связность между хостами ПО "Скала^р Геном" и "Спектра".

  3. Файрволл не блокирует доступ по протоколу HTTP и портам 80 и 52888 на хосте с ПО "Скала^р Геном".

В приведенных в данном руководстве примерах команд в качестве интерпретатора команд терминала используется Bash.

Примеры команд в ряде случаев приведены вместе с приглашением интерпретатора команд, которое может отличаться у пользователя. В данном руководстве в приглашении интерпретатора команд выводятся имя пользователя, имя узла, на котором запускаются команды, и текущий каталог, в котором находится пользователь. Приглашение интерпретатора команд заканчивается символом "#", что означает, что все команды выполняются под привилегированным пользователем root. Если приглашение заканчивается символом "$", это означает что пользователь, выполняющий установку, не является привилегированным и при запуске команд необходимо повышение привилегий пользователя при помощи команды sudo.

При вводе команд пользователю не требуется вводить приглашение интерпретатора. Например, если в руководстве приводится команда

[root@spectrum-host ~]# mkdir -p spectrum-dist

это означает, что в терминале необходимо вводить только

mkdir -p spectrum-dist

3.1 Установка основного ПО "Спектр"

Дистрибутив "Спектра" представляет собой tar.gz архив, который необходимо распаковать в произвольный каталог на хосте "Спектра", например в /root/spectrum-dist.

В данном руководстве приводятся примеры команд для версии "Спектра" 1.6.0-274. Номер версии используется в имени файла с архивом дистрибутива spectrum-dist-< OS >-v< X.X.X >-< build >.tar.gz, а также имени каталога, в который распаковывается архив. На момент выполнения установки или обновления "Спектра" пользователем версия может отличаться.

Распакованный архив содержит все RPM-пакеты, необходимые для работы "Спектра", а также скрипт установки install.sh.

Для установки необходимо перейти в директорию, в которую был распакован архив, и выполнить скрипт install.sh:

[root@spectrum-host ~]# mkdir -p spectrum-dist
[root@spectrum-host ~]# tar -xvf spectrum-dist-alt10-v1.6.0-274.tar.gz -C ./spectrum-dist
[root@spectrum-host ~]# cd spectrum-dist/spectrum-rpm-dist-v1.6.0-274
[root@spectrum-host spectrum-rpm-dist-v1.6.0-274]# ./install.sh

В ходе установки будут созданы все необходимые каталоги, установлено необходимое ПО (Ansible и необходимые для работы python-библиотеки), установлено ПО СУБД PostgreSQL, создана необходимая для работы "Спектра" база данных.

В ходе установки пользователю необходимо ввести IP-адрес, по которому доступен модуль управления ПО "Скала^р Геном":

Enter host IP for Genome: 1.2.3.4

Если при установке "Спектра" не будет указан IP-адрес, по которому доступно ПО модуля управления "Скала^р Геном", то в функциональности "Спектра" будут следующие ограничения:

  1. На странице "Кластеры" в меню при нажатии кнопки "Добавить кластер" не будет отображаться блок "Добавить найденные", содержащий список кластеров, доступных для импорта; в меню действий с кластерами будет недоступно добавление сервисов.

  2. На странице "Сервисы" в меню действий с сервисами будет недоступно добавление Pgbouncer и удаление сервисов.

Также в ходе установке необходимо ввести IP-адрес ПО "Скала^р Визион":

Enter host IP for Vision: 1.2.3.5

Для пропуска ввода IP-адресов нужно при соответствующем запросе нажать клавишу Enter.

Если при установке "Спектра" не будет указан IP-адрес, по которому доступно ПО "Скала^р Визион", отображение данных мониторинга узлов будет недоступно. В полях для графиков будет отображаться "Нет данных". Также будет отсутствовать мониторинг сервисов.

3.2 Установка дополнительного ПО "Спектр"

Для корректной работы всех функций "Спектра" требуется установка на узлы кластеров, которыми управляет "Спектр", следующего дополнительного программного обеспечения:

  • PgAdmin на хосте "Спектра" для администрирования СУБД,

  • Агент "Спектра",

  • Агент уведомлений "Спектра".

Установка дополнительных компонентов "Спектра" выполняется в два этапа:

  • установка Агента "Спектра" на узлы кластера, выполняется до импорта кластера в "Спектр";

  • установка Агента уведомлений "Спектра", выполняется после импорта кластера в "Спектр".

В примере установка дополнительного ПО для "Спектра" выполняется для одного кластера. Если под управлением "Спектра" находятся несколько кластеров, то шаги по установке дополнительного ПО на узлы (Агента "Спектра" и агента уведомлений "Спектра") необходимо выполнить для каждого кластера.

3.2.1 Установка PgAdmin

Дистрибутив PgAdmin представляет собой tar.gz архив pgadmin-dist-< OS >-< версия >.tar.gz, который необходимо распаковать в произвольный каталог на хосте "Спектра", например в /root/spectrum-dist.

В данном руководстве приводятся примеры команд для архива с названием pgadmin-dist-altlinux10-61.tar.gz. Название архива может отличаться, например, может быть другая версия.

Распакованный архив содержит образы docker-контейнеров, необходимых для работы PgAdmin, а также скрипт установки deploy.sh.

Для установки необходимо перейти в директорию, в которую был распакован архив, и выполнить скрипт deploy.sh:

[root@spectrum-host ~]# mkdir -p spectrum-dist
[root@spectrum-host ~]# tar -xvf pgadmin-dist-altlinux10-61.tar.gz -C ./spectrum-dist
[root@spectrum-host ~]# cd spectrum-dist/pgadmin-dist
[root@spectrum-host pgadmin-dist]# ./deploy.sh

По умолчанию контейнер PgAdmin использует сеть 172.22.0.0/16, и, если такая сеть на текущей Машине уже используется, следует изменить её, как описано в п. 6.6.2 настоящего Руководства.

3.2.2 Установка агента "Спектра"

Установка дополнительных компонентов "Спектра" выполняется с хоста "Спектра" из терминала, аналогично установке самого "Спектра".

В каталоге дистрибутива "Спектра" при помощи любого текстового редактора необходимо отредактировать файл inventory_samples/cluster.yml, введя параметры кластера и узлов, узнать их можно в инсталляционной карте Машины МБД.П (должны быть указаны IP-адреса в сети управления).

Если каталог, в который распакован дистрибутив "Спектра" – это /root/spectrum-dist, то полный путь к нужному файлу будет

/root/spectrum-dist/spectrum-rpm-dist-v1.6.0-274/inventory_samples/cluster.yml

Проверить наличие файла можно командой ls:

ls /root/spectrum-dist/spectrum-rpm-dist-v1.6.0-274/inventory_samples/cluster.yml

Просмотреть содержимое файла cluster.yml можно, например, командой cat:

cat /root/spectrum-dist/spectrum-rpm-dist-v1.6.0-274/inventory_samples/cluster.yml

Для установки Агента "Спектра" в файле cluster.yml необходимо заполнить раздел hosts, в котором надо указать IP-адреса узлов кластера. Должны быть указаны IP-адреса в сети управления, узнать их можно в инсталляционной карте Машины МБД.П. Также можно указать пути к файлам сертификатов, подробнее про настройку SSL см. п. 3.3.

# ...
# Хосты узлов, на которых будет настроен алерт-агент
hosts:
  node01:
    ansible_host: 192.168.1.1 (1)
    host_ca_cert: /path/to/host-ca.crt (2)
    host_cert: /path/to/host-cert.crt (3)
    host_key: /path/to/host/key (4)
  node02:
    ansible_host: 192.168.1.2
    # ...

Здесь:

1 IP-адрес узла, к которым есть доступ с узла Спектра.
2 Путь к файлу корневого сертификата хоста.
3 Путь к файлу сертификата хоста.
4 Путь к файлу приватного ключа хоста.

Если файлов корневого сертификата, сертификата или ключа нет, закомментируйте соответствующие поля.

По умолчанию файл заполнен некорректными данными, которые необходимо исправить. При установке Агента "Спектра" раздел recipients можно оставить без изменений. Этот раздел будет заполнен при установке Агента уведомлений "Спектра" после выполнения импорта кластера, см. п. 3.2.3.

Полученный файл можно сохранить для использования в последующих обновлениях "Спектра". Например, скопировать в домашний каталог пользователя, под которым выполняется установка "Спектра". Для этого перейти в каталог, в который распакован архив с дистрибутивом "Спектра". Например, если архив распакован в /root/spectrum-dist, то выполнить команду

cd /root/spectrum-dist/spectrum-rpm-dist-v1.6.0-274

и скопировать файл при помощи команды cp:

[root@spr-test-installer_v1_1 spectrum-rpm-dist-v1.6.0-274]# cp inventory_samples/cluster.yml ~

После заполнения IP-адресов узлов кластера можно перейти к установке Агента "Спектра" на узлы кластера.

Установка производится из каталога, в который распакован архив с дистрибутивом "Спектра". Например, если распаковали архив в /root/spectrum-dist, то выполнить команду

cd /root/spectrum-dist/spectrum-rpm-dist-v1.6.0-274

И далее выполнить следующие команды:

source /opt/skala-r/spectrum/python-modules/bin/activate
ansible-playbook -i inventory_samples/cluster.yml deploy_spectrum_agent.yml -k

Если для установки Агента "Спектра" использовалась копия файла cluster.yml в домашнем каталоге пользователя (см. п. 3.2.2), под которым выполняется установка "Спектра", то последняя команда будет иметь вид:

ansible-playbook -i ~/cluster.yml deploy_spectrum_agent.yml -k

После запуска требуется ввести пароль пользователя root для доступа к узлам кластера.

При успешном выполнении команды должны отсутствовать сообщения об ошибках, а в итоговом отчете о запуске плейбука должны отсутствовать шаги со статусом failed:

PLAY RECAP **************************************************************************************
node01   : ok=30   changed=11   unreachable=0   failed=0   skipped=0   rescued=0   ignored=0
node02   : ok=30   changed=11   unreachable=0   failed=0   skipped=0   rescued=0   ignored=0
node03   : ok=30   changed=11   unreachable=0   failed=0   skipped=0   rescued=0   ignored=0

Далее необходимо выполнить импорт кластера в "Спектр" с использованием графического веб-интерфейса. Подробнее об импорте кластеров см. в документе "Руководство пользователя ПО Скала^р Спектр", раздел 7 "Импорт кластеров".

3.2.3 Установка Агента уведомлений "Спектра"

Перед установкой Агента уведомлений "Спектра" кластеры должны быть видны в графическом интерфейсе и иметь статус "ДОСТУПЕН", например:

image$clusters

Для установки Агента уведомлений "Спектра" потребуются IP-адрес хоста "Спектра" и ID импортированного кластера.

IP-адрес отображается в адресной строке браузера, в котором открыт веб-интерфейс "Спектра". ID кластера также отображаются в веб-интерфейсе в адресной строке браузера при переходе на страницу информации о кластере:

image$spectrum info

В приведенном примере IP-адрес "Спектра" — 192.168.190.138, ID кластера — это значение 24ed3935-e6ce-4e72-8163-d2078f40d70c.

Полученные ID кластера и IP-адрес необходимо вписать в соответствующие строки секции recipients того же файла cluster.yml, который использовался для установки Агента "Спектра" (см. п. 3.2.2):

---
all:
  vars:
    ansible_user: root
    ansible_ssh_extra_args: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
    rpm_mode: true

    recipients:
      - name: spectrum
        cluster_id: 24ed3935-e6ce-4e72-8163-d2078f40d70c
        spectrum_host: 192.168.190.138

# ...

Для кластера, приведенного в примере выше, итоговое содержимое файла inventory_samples/cluster.yml будет иметь вид:

all:
  vars:
    ansible_user: root
    ansible_ssh_extra_args: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
    rpm_mode: true

    # Список переменных, используемых для настройки алерт-агента recipients:
        # Название конфигурации уведомлений и JSON файла, который его описывает
      - name: spectrum
        # UUID кластера, для которого настраиваются уведомления. Можно найти в адресной строке, перейдя на страницу обзора кластер
        cluster_id: 24ed3935-e6ce-4e72-8163-d2078f40d70c
         # Хост Спектра, для которого настраиваются уведомления. Указать реальный IP адрес Спектра, доступ к котором есть с узла кластера
        spectrum_host: 192.168.190.138


  # Хосты узлов, на которых будет настроен алерт-агент
  hosts:
    node01:
      # указать реальные IP адреса узлов кластера, к которым есть доступ с узла Спектра
      ansible_host: 192.168.190.61
      # Раскомментировать, если на хосте Спектра настроена аутентификация и указать реальный путь до ключа и сертификата на хосте Спектра
      host_ca_cert: "/opt/skala-r/spectrum/certs/ca.crt" # Путь к корневому сертификату на хосте Спектра, откуда тот будет скопирован на узлы
      # Раскомментировать, если на хосте Спектра настроена аутентификация и указать реальный путь до ключа и сертификата на хосте Спектра
      host_cert: "/home/root/node01_server.crt" # Путь к клиентскому сертификату на хосте Спектра, откуда тот будет скопирован на узлы
      host_key: "/home/root/node01_server.key" # Путь к ключу для клиентского сертификата на хосте Спектра, откуда тот будет скопирован на узлы

    node02:
      ansible_host: 192.168.190.62
      host_ca_cert: "/opt/skala-r/spectrum/certs/ca.crt"
      host_cert: "/home/root/node02_server.crt"
      host_key: "/home/root/node02_server.key"

    node03:
      ansible_host: 192.168.190.63
      host_ca_cert: "/opt/skala-r/spectrum/certs/ca.crt"
      host_cert: "/home/root/node03_server.crt"
      host_key: "/home/root/node03_server.key"

Далее для установки Агента уведомлений перейти в каталог, в который распакован архив с дистрибутивом "Спектра". Например, если архив распакован в /root/spectrum-dist, то выполнить команду

cd /root/spectrum-dist/spectrum-rpm-dist-v1.6.0-274

и далее следующие команды:

source /opt/skala-r/spectrum/python-modules/bin/activate
ansible-playbook -i inventory_samples/cluster.yml deploy_spectrum_alert_agent.yml -k

Если для установки Агента "Спектра" использовалась копия файла cluster.yml в домашнем каталоге пользователя, под которым выполняется установка "Спектра" (см. п. 3.2.2), то последняя команда будет иметь вид:

ansible-playbook -i ~/cluster.yml deploy_spectrum_alert_agent.yml -k

После запуска требуется ввести пароль пользователя root для доступа к узлам кластера.

При успешном выполнении команды в отчете о запуске плейбука должны отсутствовать шаги со статусом failed, при первой установке агента уведомлений будут присутствовать шаги со статусом ignored и сообщение об ошибке с пометкой …​ignoring:

TASK [remove existing alerts for spectrum]*************
fatal: [node01]: FAILED! => {"changed": true, "cmd": "pcs alert delete spectrum alert", "delta": "0:00:00.452687", "end": "2023-06-01 16:12:14.057743",
": "Error: alert 'spectrum alert' does not exist\nError: Errors have occured, therefore pcs is unable to continue", "stderr_lines": ["Error alert "sp
continue"], "stdout": "", "stdout_lines": []}
...ignoring

TASK [debug] ****************************************************************************************************************************************
ok: [node01] => {
    "msg": ""
}

TASK [create spectrum alerts] ***********************************************************************************************************************
changed: [node01]

TASK [add recipients to spectrum alert] *************************************************************************************************************
changed: [node01] => (item={'name': 'spectrum', 'cluster_id': '24ed3935-e6ce-4e72-8163-d2078f40d70c', 'spectrum_host': '192.168.190.138'})

PLAY RECAP ******************************************************************************************************************************************
node01   : ok=30   changed=11   unreachable=0   failed=0   skipped=0   rescued=0   ignored=1
node02   : ok=30   changed=11   unreachable=0   failed=0   skipped=0   rescued=0   ignored=0
node03   : ok=30   changed=11   unreachable=0   failed=0   skipped=0   rescued=0   ignored=0

3.3 Настройка SSL

"Спектр" поддерживает возможность использования SSL для шифрования данных, передаваемых между хостом "Спектра" и узлами кластеров, а также хостами "Генома" и "Визиона". Для корректной работы SSL необходимо предоставить подписанные корневой, серверный и клиентские сертификаты с ключами, а также внести изменения в конфигурационные файлы модулей "Спектра", Агента "Спектра" и Агента уведомлений "Спектра". При использовании SSL с "Геномом" или "Визионом" потребуется также настроить соответствующее ПО на соответствующих хостах, инструкция по настройке которых не входит в данное Руководство.

3.3.1 Генерация сертификатов

При первой установке "Спектра" генерируются ключ и самоподписанный серверный сертификат, но для корректной работы необходимо иметь также и корневой сертификат, которым будут подписаны все остальные сертификаты. Сертификаты могут иметь цепочки любой длины, должны иметь формат PEM с расширением файла .pem или .crt и могут быть самоподписанными. Ключ сертификата должен иметь расширение файла .key.

3.3.2 Установка сертификатов

Название файлов сертификатов и ключей сертификатов, а также их расположение может отличаться от приведенных в данном Руководстве.

После генерации сертификатов необходимо расположить их на соответствующих хостах. На хосте "Спектра" должны присутствовать:

  • Корневой сертификат ca.crt;

  • Серверный сертификат spectrum_server.crt;

  • Ключ серверного сертификата spectrum_server.key;

  • Клиентский сертификат spectrum_client.crt;

  • Ключ клиентского сертификата spectrum_client.key.

На узлах кластеров должны присутствовать:

  • Корневой сертификат ca.crt;

  • Серверный сертификат node_server.crt;

  • Ключ серверного сертификата node_server.key.

В данном руководстве сертификаты и ключи будут расположены в директории /opt/skala-r/spectrum/certs.

В файлах конфигурации на хосте "Спектра" spectrum-api, spectrum-tasks, spectrum-scheduler необходимо указать пути к файлам сертификатов и ключей. Каждая из секций с параметрами сертификатов отвечает за настройку соединения с отдельным компонентом, т. е., если необходимо включить SSL для Агента "Спектра", нужно указать пути к файлам в секции spectrum-agent.

Необходимо удостовериться, что в конфигурации Nginx присутствуют следующие директивы с корректно указанными путями:

ssl_certificate /opt/skala-r/spectrum/certs/spectrum_server.crt;
ssl_certificate_key /opt/skala-r/spectrum/certs/spectrum_server.key;

ssl_verify_client optional;
ssl_client_certificate /opt/skala-r/spectrum/certs/ca.crt;

В файлах конфигурации spectrum-agent и Агента уведомлений "Спектра" на узлах кластера должны быть указаны пути к сертификатам.

Если при установке Спектра производилась установка Агента "Спектра" и Агента уведомлений "Спектра" (см. п. 3.2.2 и п. 3.2.3), то в соответствующих файлах конфигурации уже будут указаны пути к файлам сертификатов и ключей, а сами файлы находятся на узлах кластера.

Примеры файлов конфигураций приведены в Приложении 1 данного руководства.

3.4 Настройка интеграции с KeyCloak и Avanpost FAM

"Спектр" поддерживает возможность интеграции c системами аутентификации KeyCloak и Avanpost FAM. Перед этим необходимо настроить соответствующие платформы, инструкции по настройке изложены в Приложении 2 (для KeyCloak) и Приложении 3 (для Avanpost FAM) соответственно.

3.4.1 Настройка интеграции с KeyCloak

В файле конфигурации spectrum-api нужно заполнить секцию аутентификации, согласно примеру, приведенному ниже:

[auth]
auth_server=https://192.168.1.2:8080 # Адрес хоста, на котором расположен identy provider
realm=spectrum # Название realm, который был выбран в процессе настройки
client_id=spectrum-users # ID клиента, который был создан в процессе настройки
cert=/opt/skala-r/spectrum/certs/keycloak-chain.pem # Путь к файлу сертификата. Опциональный параметр
enabled=1 # Указать 1 для включения аутентификации, 0 для отключения

Также необходимо сохранить значение поля Client secret, полученное после создания клиента, в файл зашифрованного хранилища .vault_store.

Для этого выполнить следующие команды:

source /opt/skala-r/spectrum/python-modules/bin/activate
ansible-vault edit /opt/skala-r/spectrum/.vault_store

После этого необходимо ввести пароль хранилища, после чего будет открыт текстовый редактор. Пример содержания файла можно найти в Приложении 1.

Добавить следующую строчку, где secret - значение поля Client secret из KeyCloak:

client_secret: secret

и сохранить файл.

После этого нужно перезапустить сервис API, введя команду:

systemctl restart spectrum-api

3.4.2 Настройка интеграции с Avanpost FAM

Шаги по настройке аналогичны шагам из п. 3.4.1, за исключением содержания секции аутентификации в файле конфигурации spectrum-api:

[auth]
auth_server=http://192.168.1.3:8080 # Адрес хоста, на котором расположен identy provider
client_id=spectrum-users # ID клиента, который был создан в процессе настройки
enabled=1 # Указать 1 для включения аутентификации, 0 для отключения

В зашифрованном хранилище в поле client_secret нужно указать значение поля secret, совпадающее с заданным при создании "приложения" в Avanpost FAM.

3.5 Подключение узлов хранения

Для корректной работы резервного копирования с узлов хранения и диагностических отчетов необходимо выполнить дополнительные настройки. Предполагается, что на момент выполнения этих настроек уже была выполнена корректная настройка системы хранения и узлов кластера МБД.П.

  1. Получить сведения для настройки узлов хранения.

    При настройке узлов хранения и узлов кластера необходимы следующие сведения:

    • VIP-адрес модуля хранения;

    • путь к каталогу данных на активном узле хранения. Например, /mnt/nas/lundata;

    • путь к каталогу архива WAL на активном узле хранения. Например, /mnt/nas/lunwal;

    • путь к каталогу резервных копий на узле. Например, /MBD_BACKUP/mycluster/pgbackup;

    • путь к точке монтирования каталога данных на узлах кластера. Например, /MBD_BACKUP/mount/data.

      Получить эти параметры можно на любом узле кластера из файла /etc/fstab:

      cat /etc/fstab

      В выводе будут строки для монтирования каталога резервных копий по NFS вида:

      192.168.186.211:/mnt/nas/lundata /MBD_BACKUP/mount/data nfs rw,vers=3,proto=tcp,timeo=600,soft,rsize=65536,wsize=65536,namlen=255,nolock,retrans=2,sec=sys,_netdev 0 0
      
      192.168.186.211:/mnt/nas/lunwal /MBD_BACKUP/mount/wal nfs rw,vers=3,proto=tcp,timeo=600,soft,rsize=65536,wsize=65536,namlen=255,nolock,retrans=2,sec=sys,_netdev 0 0

      в примере:

    • 192.168.186.211 – VIP-адрес модуля хранения,

    • /mnt/nas/lundata - каталог данных на активном узле хранения,

    • /mnt/nas/lunwal – путь к каталогу архива WAL на активном узле хранения,

    • /MBD_BACKUP/mount/data – путь к точке монтирования каталога данных на узлах кластера.

      Путь к каталогу резервных копий можно получить из "Спектра", в разделе детальной информации о сервисе. Для этого перейти в список сервисов и выбрать любой из сервисов настраиваемого кластера. Во вкладке Конфигурации  Конфигурация" в параметре restore_command указывается путь к каталогу резервных копий:

      image$path to backup

      В примере /MBD_BACKUP/spr-uv/pgbackup – значение каталога резервных копий.

  2. Проверить версию pg_probackup.

    Для проверки версии pg_probackup необходимо выполнить команду

    pg_probackup --version

    Версия pg_probackup на узлах хранения должна совпадать с версией на узлах кластера.

  3. На каждом узле хранения проверить uid gid пользователя pgbackup.

    Проверить можно командой

    cat /etc/passwd | grep pgbackup

    В выводе содержимого файла будут строки:

    pgbackup:x:2000:2000::/home/pgbackup:/bin/bash

    Uid gid пользователя pgbackup должны совпадать с uid gid пользователя postgres на узле кластера (должен быть 2000).

  4. На каждом узле хранения в домашнем каталоге пользователя pgbackup в файле .pgpass для каждого узла кластера и сервиса СУБД должны присутствовать записи с паролем пользователя backup, указываются IP-адреса узлов в сети interconnect, а также VIP мастера в сети interconnect:

    192.168.102.229:5432:*:backup:123
    192.168.102.228:5432:*:backup:123
    192.168.102.227:5432:*:backup:123
    192.168.102.34:5432:*:backup:123

    Формат файла описан в документации к PostgreSQL: www.postgresql.org/docs/current/libpq-pgpass.html. Пароль "123" указан в качестве примера.

    Пароль пользователя backup можно получить на узлах кластара в файле .pgpass в домашнем каталоге пользователя postgres (обычно это /var/lib/postgres/.pgpass).

    Файл .pgpass на узлах хранения должен быть с правами на чтение и запись только для владельца. Проверить можно c помощью команд:

    su - pgbackup
    ls -l ~/.pgpass

    Вывод команды:

    -rw------- 1 pgbackup pgbackup 18 авг 26 15:27 /home/pgbackup/.pgpass

    Если права отличаются от rw, то изменить можно при помощи команды:

    chmod 600 ~/.pgpass
  5. Добавить SSH-ключи пользователя spectrum на узлы хранения.

    Если для пользователя spectrum на хосте "Спектра" уже был сгенерирован SSH-ключ, использовать его. По умолчанию ключ хранится в домашней директории пользователя spectrum в файле home/spectrum/.ssh/id_rsa.pub.

    Если ключи отсутствуют, для их создания на хосте "Спектра" выполнить следующие команды:

    su - spectrum -s /bin/bash
    ssh-keygen -t rsa

    По умолчанию ключи будут записаны в файлы home/spectrum/.ssh/id_rsa и home/spectrum/.ssh/id_rsa.pub. Для создания ключей по пути по умолчанию на запрос пути нажать клавишу Enter, не задавая никакого нового значения (если такие файлы уже существуют, нужно ввести иное имя, чтобы не было замены ключей). Если необходимо сохранить ключи в другой файл, то по запросу необходимо ввести полный путь к желаемому файлу. По запросу парольной фразы поле следует оставить пустым, нажав клавишу Enter.

    Скопировать содержимое файла публичного ключа (введенный_путь/введенное_имя.pub). Для этого в текстовом редакторе открыть файл или вывести его командой cat. Ключ выглядит следующим образом:

    ssh-rsa AAA..w== spectrum@ИМЯ_ВМ

    При помощи команды exit или комбинации клавиш ctrl+d выйти из-под пользователя spectrum, чтобы снова выполнять команды из-под пользователя root.

    Скопированный текст публичного ключа добавить в файл авторизованных ключей на узле хранения, находящийся в домашней директории pgbackup по пути home/pgbackup/.ssh/authorized_keys. Для облегчения поиска пути можно выполнить команду su - pgbackup, которая осуществит переход в домашнюю директорию пользователя pgbackup.

  6. Настроить pg_hba.conf на узлах кластера.

    Для каждого сервиса СУБД на узлах кластера в файле pg_hba.conf должны присутствовать следующие записи для пользователя backup:

    host replication backup samenet scram-sha-256
    host postgres backup samenet scram-sha-256

    Просмотреть наличие записей и добавить их при необходимости можно при помощи "Спектра" (см. раздел 11.16 Руководства пользователя "Спектра").

  7. Поместить публичный ключ пользователя pgbackup из узла хранения на все узлы кластера пользователю postgres.

    Публичный ключ пользователя pgbackup из узла хранения находится в /home/pgbackup/.ssh/id_rsa.pub.

    На все узлы кластера пользователю postgres поместить ключи в /var/lib/postgres/.ssh/authorized_keys.

  8. Заполнить полученными в п. 1 данными файл nodes_setup.yml в папке inventory_samples дистрибутива "Спектра".

    Путь к файлу nodes_setup.yml может быть иным.

  9. Из папки дистрибутива "Спектра" запустить плейбуки командами:

    source /opt/skala-r/spectrum/python-modules/bin/activate
    ansible-playbook setup_storage_nodes.yml -i inventory_samples/nodes_setup.yml -k
    ansible-playbook setup_cluster_nodes.yml -i inventory_samples/nodes_setup.yml -k

    При запуске плейбуков будет запрашиваться пароль пользователя root для доступа с использованием SSH на узлы хранения и узлы кластера. Пароль пользователя root может отличаться для узлов хранения и узлов кластера.