1 Подготовка хостов к обновлению
ECSS-10 в версии 3.17 поддерживает два типа лицензирования — файловая лицензия (с использованием токена или без него) и ELM-лицензия. В зависимости от типа лицензирования при обновлении будут выполняться разные команды.
Проверить, какой тип используется на вашем SSW, можно следующей командой:
выполняется в CoCon/cluster/storage/ds1/licence/list-licence
При использовании файловой лицензии вывод будет:
файловая лицензия/cluster/storage/ds1/licence/list-licence ┌──┬───────────────────┬────────────┬──────┬───────────────────┬────────────────────┬────────────┐ │Id│Creation date(UTC) │ SSW ID │Active│ Description │Expiration date(UTC)│ Time left │ ├──┼───────────────────┼────────────┼──────┼───────────────────┼────────────────────┼────────────┤ │1 │31.10.2025 14:16:00│ECSS 010070 │* │Eltex SC softswitc │31.12.2026 23:59:59 │112d 21h 31m│ │0 │ │ECSS DEFAULT│ │Default licence │ │ │ └──┴───────────────────┴────────────┴──────┴───────────────────┴────────────────────┴────────────┘
При использовании ELM-лицензии вывод будет:
ELM лицензия/cluster/storage/ds1/licence/list-licence ┌──┬───────────────────┬────────────┬──────┬────────────────┬────────────────────┬────────────┐ │Id│Creation date(UTC) │ SSW ID │Active│ Description │Expiration date(UTC)│ Time left │ ├──┼───────────────────┼────────────┼──────┼────────────────┼────────────────────┼────────────┤ │1 │02.12.2025 13:51:39│ECSS2000000 │* │ECSS ELM License│02.12.2026 13:51:39 │364d 11h 47m│ │0 │01.01.1990 00:00:00│ECSS DEFAULT│ │Default licence │ │ │ └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────┘
- Подготовка
gluster volumeк процедуре обновления.
В случае недоступности одной из нод кластера могут возникнуть проблемы с файлами. После восстановления работы они будут находиться в сплите, из-за чего вручную придётся запускать синхронизацию между нодами.
Для решения данной проблемы воспользуйтесь параметром cluster.favorite-child-policy.
При его включении все файлы, находящиеся в сплите, будут автоматически синхронизированы между собой по заданному правилу.
Включение данного параметра производится командой:на ecss1sudo gluster volume set ecss_volume cluster.favorite-child-policy size
Результат:sudo gluster volume set ecss_volume cluster.favorite-child-policy size volume set: success
Результат:sudo gluster volume info Volume Name: ecss_volume Type: Replicate Volume ID: 4bc875b1-f966-44e2-9b3f-04f3a7af83f3 Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: 10.0.10.51:/var/lib/ecss/glusterfs Brick2: 10.0.10.52:/var/lib/ecss/glusterfs Options Reconfigured: cluster.favorite-child-policy: size performance.client-io-threads: off nfs.disable: on transport.address-family: inet storage.fips-mode-rchecksum: on cluster.granular-entry-heal: on
- При обновлении кластера следует обновлять сервера по очереди. Таким образом, при обновлении один из серверов будет всегда запущен и работа сервисов не будет прервана. Для разделения кластера следует использовать инструмент
ecss-controlна обоих серверах (описание команд утилиты приведено в «Приложении М»).
Обмен SIP-сигнализацией происходит через SIP-VRRP IP-адрес. Этот функционал реализован для возможности миграции IP-адреса на другой хост в случае падения, отключения или технического обслуживания основного хоста. Контроль миграции IP-адресов осуществляется сервисомkeepalivedна каждом хосте.
Для перевода трафика на первый сервер (ecss1) необходимо остановитьkeepalivedна втором хосте (ecss2). В этом случае оба SIP-VRRP IP-адреса будут находиться на первом хосте (ecss1). Выполнить следующую команду:на ecss2sudo systemctl disable --now keepalived.service
- Командой
ifconfigпроверить, что все VRRP IP-адреса находятся на ecss1 (VRRP-SIP1/VRRP-SIP2):на ecss1ifconfig
- Необходимо замаскировать все ноды на сервере, который обновляется первым, и отключить их автозапуск:на ecss2
sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
При выполнении указанной команды будет уведомление.
Warning: The unit file, source configuration file or drop-ins of ecss-ds.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-mycelium.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-mediator.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-core.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-pa-sip.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Эти сообщения не являются ошибкой. Продолжать выполнение процедуры.
Нода sorm идет одна на кластер. Если она запущена на ecss1 при выполнении указанной команды появится уведомление.
Unit /etc/systemd/system/ecss-sorm.service is masked, ignoring.
Это сообщение не является ошибкой. Продолжать выполнение процедуры.
- На ecss1 выполнить разделение SSW на два независимых сервера следующей командой:
Команда
ecss-controlработает со стандартными именами хостов : ecss1/ecss2.Проверить статус:на ecss1sudo ecss-control detach
на ecss1sudo ecss-control status
Результат:sudo ecss-control detach detach host: ecss2, ip: 10.0.10.52 complete sudo ecss-control status locked ip: 10.0.10.52
2 Подготовка к обновлению сервисов SSW
- Актуализировать репозиторий SSW:на обоих хостах
sudo sh -c "echo deb [arch=amd64] http://archive.eltex.org/ssw/jammy/3.18 stable main extras external > /etc/apt/sources.list.d/eltex-ecss10-stable.list"
- Выполнить обновление пакетов:на обоих хостах
sudo apt update
3 Обновление сервисов SSW на ecss2
Внимание
- Обновление PostgreSQL:
- Проверить на каких адресах подключена БД Postgres, выполнить команду:на ecss2
psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;"
Пароль по умолчанию "postgres1"
Пример:psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;" Password for user postgres: node_local_dsn --------------------------------------------------------------------------------------- host=10.0.10.51 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1 host=10.0.10.52 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1 (2 rows) - Выключить docker-контейнер:на ecss2
sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down
Пример:sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down [+] down 2/2 ✔ Container ecss-postgres-bdr-ssw-postgres-container-1 Removed ✔ Network ecss-postgres-bdr-ssw_default Removed
- Удалить старый deb-пакет, так как опция upgrade не поддержана:на ecss2
sudo apt remove ecss-postgres-bdr-ssw
Важно!
Выполнить именно remove, а не purge, так как remove сохраняет директорию volumes с таблицами нашей БД.
Пример:sudo apt remove ecss-postgres-bdr-ssw Чтение списков пакетов… Готово . . . Следующие пакеты будут УДАЛЕНЫ: ecss-postgres-bdr-ssw . . . Хотите продолжить? [Д/н] y Удаляется ecss-postgres-bdr-ssw (17.1.0.59+ssw) …
- Установить новый deb-пакет:на ecss2
sudo apt install ecss-postgres-bdr-ssw
Важно!
Во время установки будут заданы вопросы как при первоначальной установке:
Ответы должны точно соответствовать указанным в процедуре, иначе будет выполнена попытка создать новую базу данных, и установка завершится ошибкой.Вопрос Ответ Пример Текущий IP-адрес сетевого интерфейса.
Выберите IP: тот же, что и при первоначальной установке,
так как репликация завязана на конкретные IP.(проверили в пункте "а", в примере 10.0.10.52).
10.0.10.52 (необходимо выбрать) Установка в кластере?
Выберите <Да>, если пакет устанавливается на узле кластера.Да (значение по умолчанию) Является ли этот узел мастером?
Важно!
НЕТ! Иначе он попытается создать новую bdr,
чего сделать не сможет и установка завершится с ошибкой).Нет (значение по умолчанию) IP-адрес, используемый для подключения к кластеру:
Важно!
IP соседней ноды (который указывали при её установке, проверили в пункте "а", в примере 10.0.10.51).
10.0.10.51 (необходимо указать) При успешной установке на этапе поднятия репликации увидим:sudo apt install ecss-postgres-bdr-ssw . . . ============================= Checking replication status ============================= Репликация BDR настроена корректно: данные совпадают. . . . ======================================================= ======================================================= ecss-postgres-bdr-ssw successfully installed/updated! ======================================================= ======================================================= ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓ ┳┓┳┓┳┓ ┏┓┏┓┓ ┏ ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓ ┣┫┃┃┣┫ ┗┓┗┓┃┃┃ ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛ ┻┛┻┛┛┗ ┗┛┗┛┗┻┛
- После установки проверить, что загрузился новый образ и стартовал docker, выполнить команду:на ecss2
docker ps
Пример:docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 80ef72d3b125 git.eltex.loc:4567/ecss/ecss-postgresbdr:3.18 "/docker-entrypoint.…" 8 minutes ago Up 8 minutes 0.0.0.0:5439->5432/tcp, [::]:5439->5432/tcp ecss-postgres-bdr-ssw-postgres-container-1
- Проверить на каких адресах подключена БД Postgres, выполнить команду:
- Обновление SSW.
- Обновление пакета
ecss-dns-env:на ecss2sudo apt install ecss-dns-env
- Выполнить обновление пакета
ecss-user:на ecss2sudo apt install ecss-user
- Выполнить обновление пакета ecss-utils:на ecss2
sudo apt install ecss-utils
- Выполнить обновление пакета ecss-node:на ecss2
sudo apt install ecss-node
ВОПРОСЫ ПРИ УСТАНОВКЕ
ecss-node:Вопрос Ответ Пример Cookie для ноды core: (указать уникальный cookie для core, в примере ecss-core-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-core-example (необходимо ввести) Cookie для ноды ds: (указать уникальный cookie для ds, в примере ecss-ds-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-ds-example (необходимо ввести) Cookie для ноды mediator: (указать уникальный cookie для mediator, в примере ecss-mediator-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-mediator-example (необходимо ввести) Cookie для ноды pa-sip: (указать уникальный cookie для pa-sip, в примере ecss-pa-sip-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-pa-sip-example(необходимо ввести)Cookie для ноды mycelium: (указать уникальный cookie для mycelium, в примере ecss-mycelium-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-mycelium-example (необходимо ввести) Cookie для ноды sorm: (указать уникальный cookie для sorm, в примере ecss-sorm-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-sorm-example(необходимо ввести)Принимаем все изменения файлов конфигурации
- Обновление пакета
- Включаем ноды.
Включить сервисы SSW следующими командами:на ecss2sudo systemctl unmask ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
на ecss2sudo systemctl enable ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
Внимание
Перед запуском нод SSW изменяем имя кластера (на любое другое, главное, чтобы оно не совпадало с соседом (ecss1)/любой другой потенциальной АТС в вашей сети, иначе он попробует к ней подключиться). Для этого правим в файле
/etc/ecss/ecss-mycelium/mycelium.configстроку "{cluster_name, 'eltex.test'}," для примера на "{cluster_name, 'eltex1.test'},"на ecss2sudo nano /etc/ecss/ecss-mycelium/mycelium.config
Пример:[ {mycelium_broker, [ {cluster_name, 'eltex1.test'}, {compress_module, elx_data_nif}, {session_gc_timeout, 3000}, {queue_gc_timeout, infinity} . . . - Запуск SSW на ecss2. Запустить следующие сервисы:
ecss-myceliumна ecss2sudo systemctl start ecss-mycelium
ecss-dsна ecss2sudo systemctl start ecss-ds
ecss-coreecss-mediatorна ecss2sudo systemctl start ecss-core
на ecss2sudo systemctl start ecss-mediator
Если лицензия поддерживает СОРМ3, то запустить также сервис
ecss-sorm.на ecss2sudo systemctl start ecss-sorm
Если сервис
ecss-sormоказался замаскирован, то выполнить следующие команды:на ecss2sudo systemctl unmask ecss-sorm sudo systemctl start ecss-sorm
Для корректной работы SORM3 необходимо выполнить команду для SORM-экстрактора. Данную команду необходимо выполнить для каждого домена в SSW.
выполняется в CoCon/domain/<Имя_домена>/sorm3/set extractor_node sorm1@ecss2
Для примера:/domain/test_domain/sorm3/info┌──────────────────┬───────────┬─────────────┐│ Property │ Domain │ Value │├──────────────────┼───────────┼─────────────┤│adaptation │test_domain│undefined ││enabled │test_domain│true ││entrypoint_profile│test_domain│test ││extractor_ip │test_domain│192.168.47.94││extractor_node │test_domain│sorm1@ecss1 │└──────────────────┴───────────┴─────────────┘/domain/test_domain/sorm3/set extractor_node sorm1@ecss2Property "extractor_node" successfully changed from:sorm1@ecss1tosorm1@ecss2./domain/test_domain/sorm3/info┌──────────────────┬───────────┬─────────────┐│ Property │ Domain │ Value │├──────────────────┼───────────┼─────────────┤│adaptation │test_domain│undefined ││enabled │test_domain│true ││entrypoint_profile│test_domain│test ││extractor_ip │test_domain│192.168.47.94││extractor_node │test_domain│sorm1@ecss2 │└──────────────────┴───────────┴─────────────┘Команду повторить для всех доменов в SSW
Пока не запускаем PA-SIP
- Проверить статус сервисов, для этого выполнить в CoCon команду
system-status:выполняется в CoCon/system-status Checking... ┌─┬───────────────┬────────────────────────┬───────────────┬────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes│Uptime│ ├─┼───────────────┼────────────────────────┼───────────────┼────────────┼──────┤ │ │core1@ecss2 │ecss-core-3.18.0.217 │core1@ecss2 │not running │1m 28s│ │ │ds1@ecss2 │ecss-ds-3.18.0.217 │ds1@ecss2 │ds1@ecss2 │1m 32s│ │ │md1@ecss2 │ecss-mediator-3.18.0.217│md1@ecss2 │md1@ecss2 │1m 23s│ │ │mycelium1@ecss2│ecss-mycelium-3.18.0.217│mycelium1@ecss2│not running │1m 37s│ │ │sorm1@ecss2 │ecss-sorm-3.18.0.217 │sorm1@ecss2 │not running │1m 56s│ └─┴───────────────┴────────────────────────┴───────────────┴────────────┴──────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss2 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:00:14 │ │ │ msr.ecss2 │ 3.17.1.0.27 │ connected │ 00:00:16 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘
- Обновление пакета
ecss-restfs.Принять все новые конфигурационные файлы, выбирая Y.на ecss2sudo apt install ecss-restfs
- Обновление пакета
ecss-media-server.на ecss2sudo apt install ecss-media-server
- Обновление пакета
ecss-media-resources:на ecss2sudo apt install ecss-media-resources
- Обновление пакета
ecss-web-confна ecss2sudo apt install ecss-web-conf
4 Перевод нагрузки на ecss2
- Запуск сервиса
keepalived
Перед запуском сервисаkeepalivedнеобходимо стартовать сервисecss-pa-sip:на ecss2sudo systemctl start ecss-pa-sip
на ecss2sudo systemctl enable --now keepalived
Запуском сервисов
ecss-pa-sipиkeepalivedвыполняется перевод трафика с ecss1 на ecss2. Это первый шаг переключения трафика на ecss2, полный перевод будет после отключения сервисаkeepalivedна ecss1 на следующих шагах. - Подготовить ecss1 к обновлению, для этого перевести весь трафик на ecss2 (команда выполняется на ecss1):на ecss1
sudo systemctl disable --now keepalived.service
- Командой
ifconfigпроверьте, что все VRRP-адреса (VRRP IP-SIP1 / VRRP IP-SIP2) находятся на ecss2.на ecss2ifconfig
5 Подготовительные действия на ecss1
Внимание
- После разделения кластера необходимо выключить все ноды на сервере ecss1:на ecss1
sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
При выполнении указанной команды будет уведомление.
Warning: The unit file, source configuration file or drop-ins of ecss-ds.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-mycelium.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-mediator.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-core.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-pa-sip.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Эти сообщения не являются ошибкой. Продолжать выполнение процедуры.
6 Обновление сервисов SSW на ecss1
- Выполнить на ecss1 объединение в кластер:
Команда
ecss-control attachвыполняется на этом шаге для возможности создания репликации БД Postgres. Такое поведение безопасно, потому что нода уже выведена из эксплуатации.на ecss1sudo ecss-control attach
- Обновление PostgreSQL:
- Проверить, на каких адресах подключена БД Postgres, выполнить команду:на ecss1
psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;"
Пример: пароль по умолчанию "postgres1"psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;" Password for user postgres: node_local_dsn --------------------------------------------------------------------------------------- host=10.0.10.51 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1 host=10.0.10.52 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1 (2 rows) - Выключить docker-контейнер:на ecss1
sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down
Пример:sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down [+] down 2/2 ✔ Container ecss-postgres-bdr-ssw-postgres-container-1 Removed ✔ Network ecss-postgres-bdr-ssw_default Removed
- Удалить старый deb-пакет, так как опция upgrade не поддержана:на ecss1
sudo apt remove ecss-postgres-bdr-ssw
Важно!
Выполнить именно remove, а не purge, так как remove сохраняет директорию volumes с таблицами нашей БД.
Пример:sudo apt remove ecss-postgres-bdr-ssw Чтение списков пакетов… Готово . . . Следующие пакеты будут УДАЛЕНЫ: ecss-postgres-bdr-ssw . . . Хотите продолжить? [Д/н] y Удаляется ecss-postgres-bdr-ssw (17.1.0.59+ssw) …
- Установить новый deb-пакет:на ecss1
sudo apt install ecss-postgres-bdr-ssw
Важно!
Во время установки будут заданы вопросы как при первоначальной установке:
Ответы должны точно соответствовать указанным в процедуре, иначе будет выполнена попытка создать новую базу данных, и установка завершится ошибкой.Вопрос Ответ Пример Текущий IP-адрес сетевого интерфейса.
Выберите IP: тот же, что и при первоначальной установке,
так как репликация завязана на конкретные IP.(проверили в пункте "а", в примере 10.0.10.51)
10.0.10.51 (необходимо выбрать) Установка в кластере?
Выберите <Да>, если пакет устанавливается на узле кластера.Да (значение по умолчанию) Является ли этот узел мастером?
НЕТ! (Важно!, иначе он попытается создать новую bdr,
чего сделать не сможет и установка завершится с ошибкой)Нет (значение по умолчанию) IP-адрес, используемый для подключения к кластеру:
IP соседней ноды (который указывали при её установке,
проверили в пункте "а", в примере 10.0.10.52)
10.0.10.52 (необходимо указать) При успешной установке, на этапе поднятия репликации увидим:sudo apt install ecss-postgres-bdr-ssw . . . ============================= Checking replication status ============================= Репликация BDR настроена корректно: данные совпадают. . . . ======================================================= ======================================================= ecss-postgres-bdr-ssw successfully installed/updated! ======================================================= ======================================================= ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓ ┳┓┳┓┳┓ ┏┓┏┓┓ ┏ ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓ ┣┫┃┃┣┫ ┗┓┗┓┃┃┃ ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛ ┻┛┻┛┛┗ ┗┛┗┛┗┻┛
- После установки проверить, что загрузился новый образ и стартовал docker, выполнить команду:на ecss1
docker ps
Пример:docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f53bd28c78ff git.eltex.loc:4567/ecss/ecss-postgresbdr:3.18 "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 0.0.0.0:5439->5432/tcp, [::]:5439->5432/tcp ecss-postgres-bdr-ssw-postgres-container-1
- Проверить, на каких адресах подключена БД Postgres, выполнить команду:
- Обновление пакета
ecss-dns-env.на ecss1sudo apt install ecss-dns-env
При обновлении принимать новые конфигурационные файлы -Y. - Обновление пакета
ecss-user:на ecss1sudo apt install ecss-user
- Обновление пакета
ecss-utils:на ecss1sudo apt install ecss-utils
- Обновление пакета
ecss-node:на ecss1sudo apt install ecss-node
на ecss1
ВОПРОСЫ ПРИ УСТАНОВКЕ
ecss-node:Вопрос Ответ Пример Cookie для ноды core: (указать уникальный cookie для core, в примере ecss-core-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-core-example (необходимо ввести) Cookie для ноды ds: (указать уникальный cookie для ds, в примере ecss-ds-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-ds-example (необходимо ввести) Cookie для ноды mediator: (указать уникальный cookie для mediator, в примере ecss-mediator-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-mediator-example (необходимо ввести) Cookie для ноды pa-sip: (указать уникальный cookie для pa-sip, в примере ecss-pa-sip-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-pa-sip-example(необходимо ввести)Cookie для ноды mycelium: (указать уникальный cookie для mycelium, в примере ecss-mycelium-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-mycelium-example (необходимо ввести) Cookie для ноды sorm: (указать уникальный cookie для sorm, в примере ecss-sorm-example)
В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-sorm-example(необходимо ввести)Принимаем все изменения файлов конфигурации
- Включить сервисы SSW: на ecss1
sudo systemctl unmask ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip
на ecss1sudo systemctl enable ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip
Внимание
Перед запуском нод SSW, изменяем имя кластера (на имя указанное для сервера ecss2(на шаге 3.4). Для этого правим в файле
/etc/ecss/ecss-mycelium/mycelium.configстроку "{cluster_name, 'eltex.test'}," для примера на "{cluster_name, 'eltex1.test'},"на ecss1sudo nano /etc/ecss/ecss-mycelium/mycelium.config
Пример:[ {mycelium_broker, [ {cluster_name, 'eltex1.test'}, {compress_module, elx_data_nif}, {session_gc_timeout, 3000}, {queue_gc_timeout, infinity} . . . - На ecss1 запустите сервис mycelium и в CoCon проверьте, что сервис поднялся и видно ноды mycelium хостов ecss1/ ecss2:на ecss1
sudo systemctl start ecss-mycelium
выполняется в CoCon/system-status Checking... ┌─┬───────────────┬────────────────────────┬───────────────────────────────┬─────────────────────┬───────┐ │ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime │ ├─┼───────────────┼────────────────────────┼───────────────────────────────┼─────────────────────┼───────┤ │ │core1@ecss2 │ecss-core-3.18.0.249 │core1@ecss1,core1@ecss2 │not running │12m 12s│ │ │ds1@ecss2 │ecss-ds-3.18.0.249 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │12m 12s│ │ │md1@ecss2 │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │12m 12s│ │ │mycelium1@ecss1│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 14s│ │ │mycelium1@ecss2│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 13s│ │ │sip1@ecss2 │ecss-pa-sip-3.18.0.249 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│12m 13s│ └─┴───────────────┴────────────────────────┴───────────────────────────────┴─────────────────────┴───────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss2 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:10:50 │ │ │ msr.ecss2 │ 3.18.0.7 │ connected │ 00:10:51 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘
- На ecss1 запустите сервис ds и в CoCon проверить, что сервис ds доступен на обоих хостах ecss1/ ecss2:на ecss1
sudo systemctl start ecss-ds
выполняется в CoCon/system-status Checking... ┌─┬───────────────┬────────────────────────┬───────────────────────────────┬─────────────────────┬───────┐ │ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime │ ├─┼───────────────┼────────────────────────┼───────────────────────────────┼─────────────────────┼───────┤ │ │core1@ecss2 │ecss-core-3.18.0.249 │core1@ecss1,core1@ecss2 │not running │12m 12s│ │ │ds1@ecss1 │ecss-ds-3.18.0.249 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │12m 14s│ │ │ds1@ecss2 │ecss-ds-3.18.0.249 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │12m 12s│ │ │md1@ecss2 │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │12m 12s│ │ │mycelium1@ecss1│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 14s│ │ │mycelium1@ecss2│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 13s│ │ │sip1@ecss2 │ecss-pa-sip-3.18.0.249 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│12m 13s│ └─┴───────────────┴────────────────────────┴───────────────────────────────┴─────────────────────┴───────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss2 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:10:50 │ │ │ msr.ecss2 │ 3.18.0.7 │ connected │ 00:10:51 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘
- Далее такими же действиями запустить сервисы: ecss-mediator,
ecss-pa-sip,ecss-coreследующими командами:на ecss1sudo systemctl start ecss-core
на ecss1sudo systemctl start ecss-mediator
Проверить статус в CoCon:на ecss1sudo systemctl start ecss-pa-sip
Результат:/system-status Checking... ┌─┬───────────────┬────────────────────────┬───────────────────────────────┬─────────────────────┬───────┐ │ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime │ ├─┼───────────────┼────────────────────────┼───────────────────────────────┼─────────────────────┼───────┤ │ │core1@ecss1 │ecss-core-3.18.0.249 │core1@ecss1,core1@ecss2 │not running │12m 14s│ │ │core1@ecss2 │ecss-core-3.18.0.249 │core1@ecss1,core1@ecss2 │not running │12m 12s│ │ │ds1@ecss1 │ecss-ds-3.18.0.249 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │12m 14s│ │ │ds1@ecss2 │ecss-ds-3.18.0.249 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │12m 12s│ │ │md1@ecss1 │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │12m 14s│ │ │md1@ecss2 │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │12m 12s│ │ │mycelium1@ecss1│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 14s│ │ │mycelium1@ecss2│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 13s│ │ │sip1@ecss1 │ecss-pa-sip-3.18.0.249 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│12m 14s│ │ │sip1@ecss2 │ecss-pa-sip-3.18.0.249 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│12m 13s│ └─┴───────────────┴────────────────────────┴───────────────────────────────┴─────────────────────┴───────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss1 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:10:51 │ │ │ msr.ecss2 │ 3.18.0.7 │ connected │ 00:10:48 │ │ core1@ecss2 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:10:50 │ │ │ msr.ecss2 │ 3.18.0.7 │ connected │ 00:10:51 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘
- Активация сервиса
keepalived.на ecss1sudo systemctl enable --now keepalived
- Обновление пакета
ecss-restfs:на ecss1sudo apt install ecss-restfs
- Обновление пакета
ecss-media-server:Актуализировать конфигурацию:на ecss1sudo apt install ecss-media-server
Проверить и при необходимости исправить файл:на ecss1sudo dpkg-reconfigure ecss-media-server
/etc/ecss/ecss-media-server/config.xml - Обновление пакета
ecss-media-resources:на ecss1sudo apt install ecss-media-resources
- Обновление пакета
ecss-web-conf:на ecss1sudo apt install ecss-web-conf








