...
Все конфигурационные файлы должны быть идентичные между всеми нодами кластера. Для синхронизации файлов конфигурации между серверами, можно воспользоваться утилитой rsync. Пример установки утилиты:
| Блок кода |
|---|
| language | bash |
|---|
| title | Установка rsync |
|---|
|
sudo apt install rsync |
Для передачи файлов конфигурации кластера используйте следующую команду:
| Блок кода |
|---|
| language | bash |
|---|
| title | Master-node |
|---|
|
sudo rsync -av --delete --rsync-path="sudo rsync" <полный_путь_до_директории_eccm>/.env.cluster <имя_пользователя_сервера>@<IP-адрес_сервера_назначения>:<полный_путь_до_директории_eccm> |
...
После этого запустите скрипт root-ca-generator/generate-cluster-cert.sh, который сгенерирует все необходимые сертификаты и ключи в директорию cluster-cert/, а именно::
| Блок кода |
|---|
| language | bash |
|---|
| title | Master: eccm/2.6/ |
|---|
|
cd root-ca-generator && ./generate-cluster-cert.sh |
Состав директории root-ca-generator/cluster-cert:
ca.crt — корневой CA-сертификат;cluster.crt — сертификат кластера, подписанный CA;cluster.key — - ca.crt — корневой CA-сертификат;
- cluster.crt — сертификат кластера, подписанный CA;
- cluster.key — приватный ключ кластера.
При запуске ЕССМ будет также сгенерирован Java Truststore: Java-сервисы ECCM не читают ca.crt напрямую — они используют Java KeyStore в формате PKCS12. Сервис truststore-initer автоматически конвертирует ca.crt из cluster-cert/ в truststore.p12 и сохраняет его.
| Раскрыть |
|---|
| title | Использование корпоративного CA |
|---|
|
Использование корпоративного CAЕсли предусмотрен корпоративный CA, необходимо переместить все файлы безопасносного соединения в директорию cluster-cert/ на Master-ноде, а именно: - ca.crt — корневой CA-сертификат;
- cluster.crt — сертификат кластера, подписанный CA;
- cluster.key — приватный ключ кластера.
| Информация |
|---|
При наличии файла Java Truststore, также поместите его в директорию cluster-cert/. |
| Подсказка |
|---|
Для изменения получения сертификатов и ключа измените переменные файла .env.cluster. Подробнее о назначении переменных в конфигурационном файле .env.cluster описано в статье Инструкция по установку и запуску. |
|
Синхронизация сертификатов безопасности
...
Для передачи сертификатов кластера используйте следующую команду:
| Блок кода |
|---|
| language | bash |
|---|
| title | Master-node |
|---|
|
sudo rsync -av --delete --rsync-path="sudo rsync" <полный_путь_до_директории_eccm>/cluster-cert/* <имя_пользователя_сервера>@<IP-адрес_сервера_назначения>:<полный_путь_до_директории_eccm>/cluster-cert |
...
Для получения доступа к WEB-интерфейсу необходимо установить утилиту Keepalived на каждой ноде с сервисами ЕССМ. Пример установки утилиты:
| Блок кода |
|---|
| language | bash |
|---|
| title | На каждой ноде приложений |
|---|
|
sudo apt install keepalived |
В директории keepalived подготовлены конфигурационные файлы для утилиты:
...
После установки скопируйте все конфигурационные файлы из директории keepalived/ в директорию /etc/keepalived/:/ в директорию /etc/keepalived/:
| Блок кода |
|---|
| language | bash |
|---|
| title | На каждой ноде приложений: eccm/2.6/ |
|---|
|
cp . |
| Блок кода |
|---|
cp <путь_до_директории_eccm>/keepalived/* /etc/keepalived/ |
Убедитесь, что у скрипта check_app.sh есть права на выполнение. Если данного права нет, используйте следующую команду:
| Блок кода |
|---|
| language | bash |
|---|
| title | На каждой ноде приложений |
|---|
|
chmod +x /etc/keepalived/check_app.sh |
...
После этого запустите Keepalived на каждом узле. Пример запуска и добавления в автозагрузку:
| Блок кода |
|---|
| language | bash |
|---|
| title | На каждой ноде приложений |
|---|
|
sudo systemctl start keepalived
sudo systemctl enable keepalived |
Убедитесь, что роли между узлами были распределены при помощи следующей команды:команды:
| Блок кода |
|---|
| language | bash |
|---|
| title | На каждой ноде приложений |
|---|
|
code |
sudo systemctl status keepalived |
В журнале вы должны увидеть Entering BACKUP STATE и Entering MASTER STATE.
Запуск ЕССМ в отказоустойчивой системе
...
стандартной схемы
Для запуска ЕССМ в отказоустойчивой системе в стандартной схеме необходимо перейти на сервер будущего Master-узла. При помощи bash-скрипта произвести запуск мастера с необходимыми параметрами, пример запуска:, пример запуска:
| Блок кода |
|---|
| language | bash |
|---|
| title | Master: eccm/2.6/ |
|---|
|
./compose-tools.sh --install # установит docker, если он отсутствует в системе
|
| Блок кода |
|---|
./compose-tools.sh -s <MASTER_HOST> --cluster master |
После того, как мастер будет инициализирован и готов к работе, перейдите на сервер Slave-узла. При помощи bash-скрипта произвести запуск слейва с необходимыми параметрами, пример запуска с обязательными параметрами:обязательными параметрами:
| Блок кода |
|---|
| language | bash |
|---|
| title | Slave: eccm/2.6/ |
|---|
|
./compose-tools.sh --install # установит docker, если он отсутствует в системе
|
| Блок кода |
|---|
./compose-tools.sh -s <SLAVE_HOST> --cluster slave |
Параллельно с запуском Slave-ноды, допустим запуск Witness-узла. Подключитесь к Witness-ноде. При помощи bash-скрипта произвести запуск наблюдателя с необходимыми параметрами, пример запуска с обязательными параметрами:
| Блок кода |
|---|
| language | bash |
|---|
| title | Witness: eccm/2.6/ |
|---|
|
./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh -s <WITNESS_HOST> --cluster witness |
...
| Раскрыть |
|---|
| title | Запуск ЕССМ в отказоустойчивой системе при запуске БД на отдельном сервере |
|---|
|
Запуск ЕССМ в отказоустойчивой системе при запуске БД на отдельном сервере| Примечание |
|---|
Убедитесь, что значение переменной ROLE на Master-базе данных и Slave-базе данных различается и соответствует их роли. |
Для запуска ЕССМ в отказоустойчивой системе при запуске БД на отдельном сервере необходимо перейти на сервер будущей Master-базы данных. Перейдите в директорию postgres/ и запустите базу данных:в директорию postgres/ и запустите базу данных: | Блок кода |
|---|
| language | bash |
|---|
| title | Master-db: eccm/2.6/ |
|---|
| ./compose-tools.sh --install # установит docker, если он отсутствует в системе
| | Блок кода |
|---|
cd postgres/
docker compose --env-file=.env --env-file=../.env.cluster -f docker-compose.cluster.yml up -d |
После того, как база данных на Master-db будет проинициализирована, перейдите на сервер Slave-db. Перейдите в директорию postgres/ и запустите базу данных: | Блок кода |
|---|
| language | bash |
|---|
| title | Slave-db: |
|---|
|
| ./compose-tools.sh --install # установит docker, если он отсутствует в системе
| | Блок кода |
|---|
| cd postgres/
docker compose --env-file=.env --env-file=../.env.cluster -f docker-compose.cluster.yml up -d |
Во время инициализации Slave-db, запустите Witness-узел, перейдя на сервер Witness-node. При помощи bash-скрипта произвести запуск наблюдателя с необходимыми параметрами, пример запуска с обязательными параметрами:параметрами: | Блок кода |
|---|
| language | bash |
|---|
| title | Witness: eccm/2.6/ |
|---|
| ./compose-tools.sh --install # установит docker, если он отсутствует в системе
| | Блок кода |
|---|
./compose-tools.sh -s <WITNESS_HOST> --cluster witness |
После полной инициализации всего кластера баз данных, перейдите на сервер Master-ECCM. При помощи bash-скрипта произвести запуск мастера с необходимыми параметрами, пример запуска с обязательными параметрами:запуска с обязательными параметрами: | Блок кода |
|---|
| language | bash |
|---|
| title | Master-app: eccm/2.6/ |
|---|
| ./compose-tools.sh --install # установит docker, если он отсутствует в системе
| | Блок кода |
|---|
./compose-tools.sh -s <MASTER_ECCM_HOST> --cluster master --database-host <MASTER_DB_HOST> --database-port <MASTER_DB_PORT> --backup-database-host <SLAVE_DB_HOST> --backup-database-port <SLAVE_DB_PORT> |
Перейдите на сервер Slave-узла. При помощи bash-скрипта произвести запуск наблюдателя с необходимыми параметрами, пример запуска с обязательными параметрами: | Блок кода |
|---|
| language | bash |
|---|
| title | Slave: eccm/2.6/ |
|---|
| ./compose-tools.sh --install # установит docker, если он отсутствует в системе
./compose-tools.sh -s <SLAVE_ECCM_HOST> --cluster slave --database-host <MASTER_DB_HOST> --database-port <MASTER_DB_PORT> --backup-database-host <SLAVE_DB_HOST> --backup-database-port <SLAVE_DB_PORT> |
После инициализации перейдите по ранее установленному VIP адресу в формате http://<VIP>/ — будет доступен WEB-интерфейс ЕССМ. |
...