1 Preparing hosts for the update
ECSS-10 version 3.17 supports two licensing types: file-based licensing (with or without a token) and ELM licensing. Depending on the licensing type, different commands will be executed during the update.
You can check which type is used on your SSW with the following command:
performed in CoCon/cluster/storage/ds1/licence/list-licence
The output for file-based license is as follows:
File-based license/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 │ │ │ └──┴───────────────────┴────────────┴──────┴───────────────────┴────────────────────┴────────────┘
The output for ELM license is as follows:
ELM license/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 │ │ │ └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────┘
- Preparing
gluster volumefor an update.
If one of the cluster nodes becomes unavailable, issues with the files may arise. Once the node is back online, the files will be out of sync, requiring you to manually initiate synchronization between the nodes.
To resolve this issue, use the cluster.favorite-child-policy parameter.
When enabled, all files that are split will be automatically synchronized with each other according to the specified rule.
To enable this parameter, use the following command:on ecss1sudo gluster volume set ecss_volume cluster.favorite-child-policy size
Result:sudo gluster volume set ecss_volume cluster.favorite-child-policy size volume set: success
Result: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
- When updating the cluster, update the servers one at a time. This ensures that one of the servers will always be running during the update, and service operation will not be interrupted. To split the cluster, use the
ecss-controltool on both servers.
SIP signaling is exchanged via the SIP-VRRP IP address. This functionality is implemented to enable IP address migration to another host in the event of a failure, shutdown, or maintenance of the primary host. IP address migration is managed by thekeepalivedservice on each host.
To redirect traffic to the first server (ecss1), you must stopkeepalivedon the second host (ecss2). In this case, both SIP-VRRP IP addresses will be on the first host (ecss1). Run the following command:on ecss2sudo systemctl disable --now keepalived.service
- Use the
ifconfigcommand to check that all VRRP IP addresses are located on ecss1 (VRRP-SIP1/VRRP-SIP2):on ecss1ifconfig
- All nodes on the server that is being updated first should be masked and have their autorun disabled:on ecss2
sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
After the specified command is executed, the notification will appear.
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.
These messages are not an error. Continue the procedure.
- On ecss1, split SSW into two independent servers using the following command:
The
ecss-controlcommand uses standard hostnames: ecss1/ecss2.Check the status:on ecss1sudo ecss-control detach
on ecss1sudo ecss-control status
Result:sudo ecss-control detach detach host: ecss2, ip: 10.0.10.52 complete sudo ecss-control status locked ip: 10.0.10.52
2 Preparing for updating SSW services
- Update the SSW repository:on both hosts
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"
- Update the packets:on both hosts
sudo apt update
3 Updating SSW services on ecss2
Pay attention
Make a full backup.- Update PostgreSQL:
- Check the addresses where the Postgres database is running, run the following command:on ecss2
psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;"
Default password is "postgres1"
Example: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) - Disable the Docker container:on ecss2
sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down
Examplesudo 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
- Remove the old deb packet, since it doesn't support the upgrade option:on ecss2
sudo apt remove ecss-postgres-bdr-ssw
Important!
Execut the remove command, not purge, because 'remove' saves the 'volumes' directory containing the database tables.
Example:sudo apt remove ecss-postgres-bdr-ssw Reading package lists… Ready . . . The following packages will be DELETED: ecss-postgres-bdr-ssw . . . Would you like to continue? [Y/N] y Removing ecss-postgres-bdr-ssw (17.1.0.59+ssw) …
- Install the new deb package:on ecss2
sudo apt install ecss-postgres-bdr-ssw
Important!
During installation, you will be asked the same questions as during the initial installation:
Your answers must match the instructions in the procedure exactly; otherwise, the system will attempt to create a new database, and the installation will fail.Question Answer Example Current IP address of the network interface.
Select an IP address: the same one used during the initial installation,
since replication is tied to specific IP addresses.(checked in step "а", 10.0.10.52 in the example).
10.0.10.52 (must be specified) Installation in a cluster?
Select <Yes> if the package is being installed on a cluster node.Yes (default value) Is this node master?
Important!
Answer NO! Otherwise it'll try to create new bdr,
which will be impossible and will lead to installation error).No (default value) IP address used to connect to the cluster:
Important!
IP of the neighbor node (specified during its installation, checked in step "а", 10.0.10.51 in the example).
10.0.10.51 (must be specified) If the installation is successful, during the replication setup phase, we will seesudo apt install ecss-postgres-bdr-ssw . . . ============================= Checking replication status ============================= BDR replication is configured correctly: the data matches. . . . ======================================================= ======================================================= ecss-postgres-bdr-ssw successfully installed/updated! ======================================================= ======================================================= ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓ ┳┓┳┓┳┓ ┏┓┏┓┓ ┏ ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓ ┣┫┃┃┣┫ ┗┓┗┓┃┃┃ ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛ ┻┛┻┛┛┗ ┗┛┗┛┗┻┛
- After the installation make sure, that the new image is loaded and the docker started. Run the following command:on ecss2
docker ps
Example: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
- Check the addresses where the Postgres database is running, run the following command:
- Updating SSW.
- Updating the
ecss-dns-envpackage:on ecss2sudo apt install ecss-dns-env
- Updating the
ecss-userpackage:on ecss2sudo apt install ecss-user
- Updating the
ecss-utilspackage:on ecss2sudo 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(необходимо ввести)Принимаем все изменения файлов конфигурации
- Updating the
- Включаем ноды.
Включить сервисы 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








