Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

...

Update options

Using a single server for the SSD does not provide redundancy. Therefore, upgrading to a new version without interrupting traffic is not possible.
There are two ways to upgrade.

...

Без форматирования
/domain/test_domain/cdr/make_finalize_cdr 
Created file(s): cdr_20260522_11_51_16_1_c.csv

Якорь
Первый вариант
Первый вариант
First option

  1. Предупреждение
    titleВнимание
    Perform a full backup
  2. You need to mask all nodes on the server and disable node autostart:
    Блок кода
    titleна ecss1
    sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm

    Информация

    When the attached command is executed, a notification will be displayed.

    Без форматирования
    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 errors. Continue with the procedure.

  3. Update the ssw repository:
    Блок кода
    titleна ecss1
    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"
  4. Perform package update:
    Блок кода
    titleна ecss1
    sudo apt update

    Примечание

    If you see this system message:

    Без форматирования
    W: http://archive.eltex.org/ssw/jammy/3.18/dists/unstable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

    Run the following command:

    Блок кода
    titleна обоих хостах
    sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d


  5. Updating PostgreSQL:
    1. Turn off the Docker container:
      Блок кода
      titleна ecss2
      sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down

      Без форматирования
      titleПример:
      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 
    2. Remove the old deb package, since the upgrade option is not supported:
      Блок кода
      titleна ecss2
      sudo apt remove ecss-postgres-bdr-ssw
      Предупреждение
      title!!Важно!!

      Run remove, not purge, because remove preserves the volumes directory with our database tables.


      Без форматирования
      titleПример:
      sudo apt remove ecss-postgres-bdr-ssw
      Reading package lists... Done
      . . .
      The following packages will be REMOVED:
        ecss-postgres-bdr-ssw
      . . .
      Do you want to continue? [Д/н] y
      Deleting ecss-postgres-bdr-ssw (17.1.0.59+ssw) …
    3. Установить новый deb-пакет:
      Блок кода
      titleна ecss2
      sudo apt install ecss-postgres-bdr-ssw 
      Предупреждение
      title!!IMPORTANT!!

      During installation, you will be asked the same questions as during the initial installation:

      The answers must exactly match those specified in the procedure, otherwise an attempt will be made to create a new database and the installation will fail.

      Информация
      QuestionReplyExample

      The current IP address of the network interface.


      10.0.10.41 (select)

      Install on a cluster?

      Select <Yes> if the package is installed on a cluster node.

      No (select)


      Блок кода
      titleIf the installation is successful, at the stage of raising replication we will see:
      sudo apt install ecss-postgres-bdr-ssw
      . . .
      ==================
       Create databases 
      ==================
      Database ecss_storekeeper_db already exists, skipping...
      Database web_conf already exists, skipping...
      Extension btree_gist already exists, skipping...
      Extension bdr already exists, skipping...
      
      ===================================
       Creating Postgres Exporter Schema 
      ===================================
      Node IP: localhost
      psql:/srv/ecss/ecss-postgres-bdr-ssw/schema.sql:1: NOTICE:  schema "postgres_exporter" already exists, skipping
      CREATE SCHEMA
      GRANT
      CREATE FUNCTION
      CREATE VIEW
      GRANT
      CREATE FUNCTION
      CREATE VIEW
      GRANT
      psql:/srv/ecss/ecss-postgres-bdr-ssw/schema.sql:28: NOTICE:  extension "pg_stat_statements" already exists, skipping
      CREATE EXTENSION
      CREATE FUNCTION
      CREATE VIEW
      GRANT
      . . .
      =======================================================
      =======================================================
       ecss-postgres-bdr-ssw successfully installed/updated! 
      =======================================================
      =======================================================
      
      
      ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓  ┳┓┳┓┳┓  ┏┓┏┓┓ ┏
      ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓  ┣┫┃┃┣┫  ┗┓┗┓┃┃┃
      ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛  ┻┛┻┛┛┗  ┗┛┗┛┗┻┛
    4. After installation, check that the new image has been pulled in and Docker has started by running the command:
      Блок кода
      titleна ecss2
      sudo docker ps

      Блок кода
      titleexample:
      sudo docker ps
      CONTAINER ID   IMAGE                                           COMMAND                  CREATED              STATUS              PORTS                                         NAMES
      bf73743d3e09   git.eltex.loc:4567/ecss/ecss-postgresbdr:3.18   "/docker-entrypoint.…"   About a minute ago   Up About a minute   0.0.0.0:5439->5432/tcp, [::]:5439->5432/tcp   ecss-postgres-bdr-ssw-postgres-container-1
  6. Updating the ecss-dns-env package:
    Блок кода
    titleна ecss1
    sudo apt install ecss-dns-env

    After the update, you need to update the configuration by running the command. The answers to the questions are similar to the installation procedure:
    Блок кода
    titleна ecss1
    sudo dpkg-reconfigure ecss-dns-env
  7. Update the ecss-user package:
    Подсказка

    When updating, you need to apply new configuration files (confirm with -Y).


    Блок кода
    titleна ecss1
    sudo apt install ecss-user
  8. Update the ecss-utils package:
    Блок кода
    titleна ecss1
    sudo apt install ecss-utils
  9. Раскрыть
    titleIn case of using ELM licensing

    Install the License Provider package:

    Блок кода
    titleна ecss2
    sudo apt install ecss-license-provider

    При установке пакета ecss-license-provider будут заданы вопросы:

    ВопросыОтветыПримеры

    Адрес для соединения с License Provider: 
    License Provider listen ip:

    0.0.0.0 (значение по умолчанию)

    Порт для соединения c License Provider:
    License Provider listen port:
    4321 (значение по умолчанию)

    Выберите уровень логирования:
    Log level:
    info (значение по умолчанию),
    возможные варианты: debug, error, info

    Ключ-имя кластера резервирования:
    License Provider cluster key:

    указать уникальное имя
    ecss-lm-cluster (значение по умолчанию)

    Подсказка
    Менеджеры с одинаковыми именами попытаются собраться в кластер и резервировать друг друга.


    Какие службы должны быть перезапущены?

    ecss-license-provider.service  (значение по умолчанию)

    Данные сохраняются в файле /etc/ecss/ecss-license-provider/config.env:

    Без форматирования
    ECSS_LM_HOST=0.0.0.0
    ECSS_LM_PORT=4321
    ECSS_LM_LOG_LEVEL=info
    RELEASE_COOKIE=ecss-abf-lm-cluster

    Конфигурация License Provider (LP)

    Сервис ecss-license-provider использует два конфигурационных файла: /etc/ecss/ecss-license-provider/config.env и /etc/ecss/ecss-license-provider/config.yaml.

    В файл config.env информация сохраняется в момент установки пакета ecss-license-provider.

    Config.yaml файл содержит основные настройки для подключения к ELM-серверу, откуда брать лицензии, какие лицензии, и куда их потом передавать, все это нужно сконфигурировать вручную.

    Блок кода
    titleинформация в файле после установки
    elm_addresses: []
    licenses: []
    ecss_nodes: []
    Для заполнения данных полей откройте файл конфигурации ecss-elm-adapter используемого в версии 3.17 /etc/ecss/ecss-elm-adapter/config.env:
    Блок кода
    titleна ecss2
    сat /etc/ecss/ecss-elm-adapter/config.env 
    ELM_HOST=elm.eltex-co.ru
    ELM_PORT=8099
    ECSS_PRODUCT_ID=ECSS2000000
    ECSS_LICENSE_KEY=ssw987654
    LOG_LEVEL=info
    LICENCE_FAIL_TIMER_SECONDS=10
    LICENCE_PULL_TIMER_SECONDS=360

    В поле elm_adresses нужно прописать список серверов ELM, к которым мы хотим подключаться для получения лицензий. Первый адрес в списке используется как основной. Дополнительные строки с адресами работают как резерв.
    пример:
    - "elm.eltex-co.ru:8099"
    - "192.168.111.22:8099"
    - "elm-3.eltex.loc:8099"

    Дальше задаются сами лицензии в поле licenses.

    • id может быть любой, главное чтоб был уникальный у каждой лицензии. Влияет только на адрес лицензии на самом License Provider (например 0, 1, 2, 3).
    • kind. Для SSW поддерживается только SSW (заглавными буквами).
    • type выбирается как elm, если запрашивать данную лицензию нужно с ELM-сервера. Если нужно использовать файловую лицензию SSW, то тип выбирается как ecss_license.
      • при elm типе необходимо задать поля license_key и product_id для идентификации лицензии.
      • при ecss_license типе задается поле license, содержащее ключ статичной лицензии.
    Примечание

    Параметры license_key = ECSS_LICENSE_KEY и product_id = ECSS_PRODUCT_ID должны быть согласованы с данными, ранее загруженными на ELM-сервере.

    Блок ecss_nodes

    В нем нужно задать данные сервисов, которые будут получать лицензию. Сервис задается тремя параметрами:

    • id - идентификатор сервиса. В случае с SSW должен совпадать с ECSS_ID лицензируемого SSW.
    • kind - тип лицензируемого сервиса. По аналогии с блоком лицензий, поддерживаются типы SSW и AUP. Для SSW поддерживается только SSW.
    • license_id - идентификатор лицензии, которая будет отправляться на данный сервис. Соответствует идентификаторам лицензии из блока licenses.
    Примечание
    Два SSW с разными ECSS_ID не могут получить одну и ту же лицензию, конфигурация с таким распределением будет помечена некорректной.
    Кроме того, два SSW с одинаковыми ECSS_ID не смогут одновременно получать одну и ту же лицензию с одного License Provider, поэтому крайне важно корректно устанавливать свой ECSS_ID и делать его уникальным как минимум в зоне видимости используемого License Provider.
    Подсказка

    Формат ECSS_ID:
    Начинается и заканчивается обязательно латинской буквой или цифрой, в теле же могут использоваться точки и тире. 

    Без форматирования
    [A-Za-z0-9][A-Za-z0-9.-][A-Za-z0-9]
    Блок кода
    titleПример: файла config.yaml на основе данных из файла /etc/ecss/ecss-elm-adapter/config.env
    elm_addresses:
     - "elm.eltex-co.ru:8099"
    licenses:
     - id: 0
       kind: SSW
       type: elm
       license_key: "ssw987654"
       product_id: "ECSS2000000"
    ecss_nodes:
     - id: eltex1.test
       kind: ssw
       license_id: 0

    Выполнить перезагрузку сервиса ecss-license-provider.service для обновления конфигурации из файла /etc/ecss/ecss-license-provider/config.yaml следующей командой:

    Блок кода
    titleесли кластер, то на обоих хостах
    sudo systemctl restart ecss-license-provider.service
  10. Выполните обновление пакета ecss-node:
    Блок кода
    titleна ecss1
    sudo apt install ecss-node

    Во время установки будет предложено настроить параметры, необходимые для формирования конфигурационных файлов, примеры ответов следует ниже.

    Вопросы ecss-nodeОтветы для ecss1Пример

    Cookie для ноды core:

    ecss-core (значение по умолчанию)

    Подсказка

    Рекомендуется заменить на уникальное значение

     


    Cookie для ноды ds: 

    ecss-ds (значение по умолчанию)

    Подсказка

    Рекомендуется заменить на уникальное значение

     


    Cookie для ноды mediator:

    ecss-mediator (значение по умолчанию)

    Подсказка

    Рекомендуется заменить на уникальное значение

     


    Cookie для ноды pa-sip:

    ecss-pa-sip (значение по умолчанию)

    Подсказка

    Рекомендуется заменить на уникальное значение

     


    Cookie для ноды mycelium:

    ecss-mycelium (значение по умолчанию)

    Подсказка

    Рекомендуется заменить на уникальное значение

     


    Cookie для ноды sorm:

    ecss-sorm (значение по умолчанию)

    Подсказка

    Рекомендуется заменить на уникальное значение

     


    Использовать текущую версию файла настройки?

    No (значение по умолчанию)


    Подсказка

    При обновлении нужно применить новые конфигурационные файлы (подтверждением -Y).

     

  11. Включите ноды.
    Включить сервисы ssw следующими командами: 
    Блок кода
    titleна ecss1
    sudo systemctl unmask ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm

    Блок кода
    titleна ecss1
    sudo systemctl enable ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
  12. Запуск SSW на ecss1. Запустите следующие сервисы:
    ecss-mycelium
    Блок кода
    titleна ecss1
    sudo systemctl start ecss-mycelium
    ecss-ds
    Блок кода
    titleна ecss1
    sudo systemctl start ecss-ds
    ecss-core
    Блок кода
    titleна ecss1
    sudo systemctl start ecss-core
    ecss-mediator
    Блок кода
    titleна ecss1
    sudo systemctl start ecss-mediator

    Подсказка

    Если лицензия поддерживает СОРМ3, то запустить также сервис ecss-sorm.

    Блок кода
    titleна ecss1
    sudo systemctl start ecss-sorm




    Предупреждение

    Пока не следует запускать PA-SIP!

  13. Проверьте статус сервисов, для этого выполните в CoCon команду system-status:
    Без форматирования
    titleвыполняется в CoCon
    /system-status 
    Checking...
    ┌─┬───────────────┬────────────────────────┬───────────────┬────────────┬──────┐
    │ │     Node      │        Release         │ Erlang nodes  │Mnesia nodes│Uptime│
    ├─┼───────────────┼────────────────────────┼───────────────┼────────────┼──────┤
    │ │core1@ecss1    │ecss-core-3.18.0.271    │core1@ecss1    │not running │14m 4s│
    │ │ds1@ecss1      │ecss-ds-3.18.0.271      │ds1@ecss1      │ds1@ecss1   │14m 4s│
    │ │md1@ecss1      │ecss-mediator-3.18.0.271│md1@ecss1      │md1@ecss1   │14m 4s│
    │ │mycelium1@ecss1│ecss-mycelium-3.18.0.271│mycelium1@ecss1│not running │14m 4s│
    │ │sorm1@ecss1    │ecss-sorm-3.18.0.271    │sorm1@ecss1    │not running │14m 5s│
    └─┴───────────────┴────────────────────────┴───────────────┴────────────┴──────┘
    
    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.1.7 │ connected │ 00:43:03  │
    └─────────────┴───────────┴────────────┴───────────┴───────────┘
  14. Режимы лицензирования.
    Раскрыть
    titleВ случае использования файлового лицензирования
    Информация
    titleВ случае использования файлового лицензирования

    Никаких дополнительных действий выполнять не требуется.

    Без форматирования
    /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 softswitch                         │31.12.2026 23:59:59 │224d 21h 31m│
    │0 │                   │ECSS DEFAULT    │      │Default licence                             │                    │            │
    └──┴───────────────────┴────────────────┴──────┴────────────────────────────────────────────┴────────────────────┴────────────┘
  15. Раскрыть
    titleВ случае использования ELM лицензирования

    Выполнить конфигурацию подключения SSW к License Provider следующей командой в CoCon, (в примере License Provider установлен на хосте ecss1, IPadd хостов 10.0.10.41. Значение порта из файла /etc/ecss/ecss-license-provider/config.env по умолчанию 4321):

    Блок кода
    titleвыполняется в CoCon
    /system/licence/manager/set --hosts [https://10.0.10.41:4321]

    После выполнения проверить статус подключения командой:

    Блок кода
    titleвыполняется в CoCon
    /system/licence/manager/show-status
    ┌───────────────────────┬───────┬─────┐
    │         Host          │Current│Alive│
    ├───────────────────────┼───────┼─────┤
    │https://10.0.10.41:4321│*      │true │
    └───────────────────────┴───────┴─────┘

    Хост должен иметь статус alive=true. И быть «current». 

    • Current - отображает к какому хосту подключён SSW. Если есть подключение, указывается *, если нет - ничего не указано.
    • Alive - отображает статус доступности хоста (healthcheck).
    Информация
    titleПодключение к License Manager

    Отсутствие подключения к License Provider \ ELM будет равноценно отсутствию доступа к токену, что приведёт к критическим авариям, переходу в аварийный режим по истечении которого, если связь не будет восстановлена, система перейдёт на Default-лицензию.

    Данное поведение применимо только при работе в elm-режиме.

    Если статус к одному из хостов License Provider показан current, можно посылать запрос на загрузку лицензии на SSW командой:

    Блок кода
    titleвыполняется в CoCon
    /cluster/storage/ds1/licence/request
    Блок кода
    titletype=elm
    /cluster/storage/ds1/licence/request      
    Licence received      
    [*******                                                               ] 6s 2ms   
    Success: Licence parameters applied
    Блок кода
    titletype=elm
    /cluster/storage/ds1/licence/list-licence 
    ┌──┬───────────────────┬────────────┬──────┬────────────────┬────────────────────┬────────────────────┬─────────┐
    │Id│Creation date(UTC) │   SSW ID   │Active│  Description   │Comm. Exp. Date(UTC)│Expiration date(UTC)│Time left│
    ├──┼───────────────────┼────────────┼──────┼────────────────┼────────────────────┼────────────────────┼─────────┤
    │1 │14.04.2026 11:18:34│ECSS2000000 │*     │ECSS ELM License│09.04.2027 16:26:34 │06.06.2026 10:49:12 │1d 6h 59m│
    │0 │01.01.1990 00:00:00│ECSS DEFAULT│      │Default licence │                    │                    │         │
    └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────────────┴─────────┘


  16. Обновление пакета ecss-restfs.
    Подсказка
    Принять все новые конфигурационные файлы, выбирая  Y.

    Блок кода
    titleна ecss1
    sudo apt install ecss-restfs
  17. Обновление пакета ecss-media-server.
    Предупреждение

    Media Server анализирует конфигурацию в файлах находящихся в директории /etc/ecss/ecss-media-server/. В версии 3.17 реализована новая функция контроля приоритетности кодеков. Если по какой то причине в нескольких файлах присутствует секция "codec", в которой несколько раз прописывается один и тот же кодек, то после обновления возникнет конфликт, и Media Server работать не будет.

    Поэтому в конфигурационных файлах одного Media Server не должно быть конфликтов по приоритетам кодеков (запись об одном кодеке должна быть одна и не повторяться в других файлах). Решение, на какие именно фалы требуется сконфигурировать, остается на усмотрение администратора системы.

    Выполните обновление:
    Подсказка

    Принять все новые конфигурационные файлы, выбирая  Y.


    Блок кода
    titleна ecss1
    sudo apt install ecss-media-server
    Актуализируйте конфигурацию:
    Блок кода
    titleна ecss1
    sudo dpkg-reconfigure ecss-media-server
  18. Обновление пакета ecss-media-resources:
    Блок кода
    titleна ecss1
    sudo apt install ecss-media-resources
  19. Обновление пакета ecss-web-conf
    Блок кода
    titleна ecss1
    sudo apt install ecss-web-conf
  20. Раскрыть
    titleОбновление пакетов опциональных сервисов

    Обновление пакета ecss-teleconference-ui

    Блок кода
    titleна ecss1
    sudo apt install ecss-teleconference-ui

    Обновление пакета ecss-crm-server

    Блок кода
    titleна ecss1
    sudo apt install ecss-crm-server

    Обновление пакета ecss-cc-ui

    Блок кода
    titleна ecss1
    sudo apt install ecss-cc-ui

    Обновление пакета ecss-call-api

    Блок кода
    titleна ecss1
    sudo apt install ecss-call-api

    Обновление пакета ecss-peeper-client

    Блок кода
    titleна ecss1
    sudo apt install ecss-peeper-client
  21. Запустите  ecss-pa-sip :
    Блок кода
    titleна ecss1
    sudo systemctl start ecss-pa-sip
    Проверьте статус сервисов командой /system-status :
    Блок кода
    titleвыполняется в CoCon
    /system-status 
    Checking...
    ┌─┬───────────────┬────────────────────────┬───────────────┬────────────┬───────┐
    │ │     Node      │        Release         │ Erlang nodes  │Mnesia nodes│Uptime │
    ├─┼───────────────┼────────────────────────┼───────────────┼────────────┼───────┤
    │ │core1@ecss1    │ecss-core-3.18.0.271    │core1@ecss1    │not running │54m 27s│
    │ │ds1@ecss1      │ecss-ds-3.18.0.271      │ds1@ecss1      │ds1@ecss1   │54m 27s│
    │ │md1@ecss1      │ecss-mediator-3.18.0.271│md1@ecss1      │md1@ecss1   │54m 27s│
    │ │mycelium1@ecss1│ecss-mycelium-3.18.0.271│mycelium1@ecss1│not running │54m 27s│
    │ │sip1@ecss1     │ecss-pa-sip-3.18.0.271  │sip1@ecss1     │sip1@ecss1  │54m 27s│
    │ │sorm1@ecss1    │ecss-sorm-3.18.0.271    │sorm1@ecss1    │not running │54m 27s│
    └─┴───────────────┴────────────────────────┴───────────────┴────────────┴───────┘
    
    All services are started.
    
      Active media resource selected list specific:
    ┌─────────────┬───────────┬──────────┬───────────┬───────────┐
    │    Node     │    MSR    │   MSR    │ Cc-status │ Cc-uptime │
    │             │           │ version  │           │           │
    ├─────────────┼───────────┼──────────┼───────────┼───────────┤
    │ core1@ecss1 │ msr.ecss1 │ 3.18.0.7 │ connected │ 00:01:17  │
    └─────────────┴───────────┴──────────┴───────────┴───────────┘
    Выполните проверку переезда активных регистраций на обновленный хост. Для этого выполните контроль зарегистрированных абонентов на  SSW. Выполните команду в CoCon:
    Блок кода
    titleвыполняется в CoCon
    /domain/test_domain/sip/user/registered sip *            
    450 make users list ...
    [**********************************************************************] 28mks    
    450 users information read ...
    [**********************************************************************] 1ms      
    Executed on the sip1@ecss1
    ┌───────────────┐
    │ elements: 436 │
    └───────────────┘
  22. После выполнения обновления проверьте работу всех сервисов SSW.

Якорь
Второй вариант
Второй вариант
Второй вариант

Исходные данные
На момент установки использовать временные IP адреса (в примере 10.0.10.51/10.0.20.51). На последних шагах временные адреса будут заменены на реальные IP адреса SSW версии 3.17 (в примере 10.0.10.41/10.0.20.41).

Раскрыть
titleИнформация
Информация
iconfalse

Исходные данные
В данном разделе использованы специфичные для данного продукта термины, ознакомиться с ними можно здесь.

Требуется интеграция программного коммутатора 5 класса ECSS-10 (SSW) на 1 физическом сервере с поддержкой SIP со следующими параметрами на нагрузку:

  • Максимальное количество абонентов – 15000 (MUL — Max user limit);
  • Максимальное количество одновременных соединений — 2000 (MCL — Max call limit);
  • Резервирование системы не требуется;
  • Количество сетевых интерфейсов ethernet — 4.

По техническому заданию требуется определить аппаратную платформу.

Include A Shared Block
shared-block-keyhw_ssw
pageРуководство по инсталляции и начальному конфигурированию

Include A Shared Block
shared-block-keyvm_ssw
pageРуководство по инсталляции и начальному конфигурированию

Раскрыть
titleПример составления аппаратных требований:

Устройство

Требуемый ресурс

Серия аппаратного продукта

MCL

MUL

Сервер 1

2500

15000

Heavy

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

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

Имя сервера (хоста)

Роль

Интерфейс

Адрес

Адрес вашего проекта

Порт

Статические адреса программного коммутатора

ecss1

Адрес сервера

net.10 (mgm)

10.0.10.51/24


-

ecss1

Адрес протокольного адаптера

net.20 (voip)

10.0.20.51/24


-

ecss1

Адрес шлюза

net.10 (mgm)

10.0.10.1
-

ecss1

Адреса DNS-серверов

net.10 (mgm)

10.0.10.1, 8.8.8.8
-

Внутренние адреса программного коммутатора

ecss1

Адрес ядра (ecss-core)

lo

127.0.0.1/24


5000

ecss1

Адрес медиасервера (ecss-media-server (MSR))

lo

127.0.0.1/24


5040



Включение в сеть

Топологию включения сервера в сеть для обеспечения резервирования рекомендуется делать с использованием 2-х коммутаторов.

draw.io Diagram
bordertrue
diagramNameсеть
simpleViewerfalse
width600
linksauto
tbstyletop
lboxtrue
diagramWidth1966
revision1

Рисунок 1 — Схема организации связи

Вариант 1. Схема active-backup

Коммутаторы связаны между собой в erps-кольцо.

Все 4 физических сетевых интерфейса объединяются в 1 агрегированный линк (bond). Агрегация портов сервера настраивается в режиме active-backup, т.е. в работе всегда находится только 1 сетевой интерфейс. Сетевые интерфейсы сервера попарно включены в коммутаторы, на которых агрегация портов (port-channel) также настраивается в режиме active-backup.

Например, eth1 и eth2 включаются в первый коммутатор, а eth3 и eth4 — во второй.


Вариант 2. Схема LACP

Коммутаторы связаны между собой в стек. Стек должен логически работать как один коммутатор, способный обеспечивать агрегацию портов в режиме LACP между разными физическими коммутаторами. Пример — коммутаторы MES3124 со специализированной прошивкой.

Все 4 физических сетевых интерфейса также объединяются в 1 агрегированный линк (bond). Агрегация портов сервера настраивается в режиме 802.3ad. Создаются агрегированные группы сетевых карт с одинаковой скоростью и дуплексом. При таком объединении передача задействует все каналы в активной агрегации согласно стандарту IEEE 802.3ad. Выбор, через какой интерфейс отправлять пакет, определяется политикой. По умолчанию это XOR-политика, можно использовать «xmit_hash» политику. Подробнее в разделе Приложение Е. Netplan.

Требования:

  • Поддержка Ethtool в драйвере для получения информации о скорости и дуплексе на каждом сетевом интерфейсе;
  • Поддержка на коммутаторе стандарта IEEE 802.3ad;

Сетевые интерфейсы сервера также попарно включены в коммутаторы, на которых агрегация портов (port-channel) настраивается в режиме LACP. Например, eth1 и eth2 включаются в первый коммутатор (port-channel 1), а eth3 и eth4 — во второй (port-channel 2).

Установка ОС

Раскрыть
titleПодготовительный этап

Установка SSW ECSS10 состоит из 2-х основных частей :

  • Подготовительной  -  Установка ОС Ubuntu 22.04, обновлений пакетов OC Ubuntu , "оптимизация" ОС, установка дополнительных пакетов программ, подготовка сетевых интерфейсов,  /etc/hosts, ssh-keygen

  • Установка приложений Eltex ECSS10

Подготовительный этап

В этом разделе приведено описание инсталляции операционной системы, а также необходимых и дополнительных пакетов. Система ECSS-10 версии 3.17 работает под управлением ОС  Ubuntu 22.04.

Предварительные требования

  • Установочный загрузочный носитель с дистрибутивом операционной системы;
  • Подготовленный сервер с обновленным BIOS, ILO (если есть), подключенная сеть для доступа в сеть Интернет;
  • Выставленный первый приоритет загрузки с установочного носителя — USB Flash или CD/DVD в BIOS;
  • Достаточный объем дискового пространства и памяти в соответствии с проектом.

Якорь
inst_os
inst_os
Установка ОС

Для установки ОС необходимо выполнить следующее:

  • После загрузки с установочного носителя выбрать "Install Ubuntu Server".
  • Выбрать язык системы и раскладку клавиатуры.
  • Настроить сетевой интерфейс для подключения к сети Интернет:

  • Создать партиции на диске в соответствии с таблицей 1
  • Настроить имена сервера и пользователя
  • Установить OpenSSH server
  • Перезагрузить успешно установленную ОС
Раскрыть
titleУстановка ОС Ubuntu Server 22.04

Include A Shared Block
shared-block-keyУстановка ОС Ubuntu Server 22.04
pageУстановка ОС Ubuntu Server 22.04



Якорь
df
df
Таблица 1 — Вариант размещения информации в файловой системе на физических носителях для серверов

1Загрузочный раздел операционной системы (создается автоматически)bootraid 1:hdd1,hdd2boot/bootext41 GbПервичный
2Корневой раздел операционной системыrootraid 1:hdd1,hdd2root/ext430 GbЛогический
3Информация локальных баз данныхmnesiaraid 1:hdd1, hdd2mnesia/var/lib/ecssext410 GbЛогический
4Распределенная БД для хранения медиаресурсовglusterfsraid 1:hdd1, hdd2 или hdd3glusterfs/var/lib/ecss/restfsext4Max GbЛогический
5Журналы функционирования подсистем ОСlograid 1:hdd1,hdd2 или hdd3log/var/logext420 GbЛогический
6Журналы функционирования подсистем ECSSecss_lograid 1:hdd1,hdd2 или hdd3ecss_log/var/log/ecssext420 GbЛогический
7Базы данныхecss_dbraid 1:hdd1,hdd2 или hdd3ecss_db/srv/ecss/ecss-postgres-bdr-ssw/ext4100–400 Gb*Логический
8Файлы пользователяhomeraid 1:hdd1,hdd2 или hdd3home/homeext410 GbЛогический


Примечание

* Рекомендуемое значение для серий Light, Light+, Midi — 100 Gb. Рекомендуемое значение для серии Heavy — 200 Gb,  Super Heavy — 400 Gb.

Для работы системы необходимо как минимум 256 Gb свободного пространства.

На серверах системы необходимо настроить параметр "hostname".

На всех серверах системы желательно указать одинаковое имя пользователя (любое, кроме ssw). Лицензия ECSS-10 привязывается к ключу eToken/ruToken и к имени компьютера (hostname). Системный пользователь ssw создается при инсталляции пакета ecss-user.

Подсказка

Если используется один сервер, рекомендуемое значение hostname — ecss1;

...

Раскрыть
titleНастройка сети

Настройка сети

Согласно параметрам, заданным в техническом задании, выполним сетевые настройки. В данном примере считается, что необходимая операционная система уже установлена. 

Рекомендуется разделять трафик, используемый в разных целях. Например, трафик управления и трафик VoIP. Для этого создаются 2 или более vlan. При небольшой нагрузке для простоты можно обойтись и одним vlan, но это будет в будущем доставлять неудобства при снятии дампов трафика и его анализе. В соответствии с техническим заданием на vlan настраиваются IP-адреса самого хоста, шлюзы, DNS и маршрутизация в другие сети.

В данном примере согласно ТЗ будем использовать адреса:

  • 10.0.10.51/24 — для управления, vlan 10;
  • 10.0.20.51/24 — для VoIP.

Внутри серверной платформы существует адресная структура и используются внутренние адреса для взаимодействия между подсистемами (нодами) в кластере. Например, внутренний адрес для кластера на одном сервере 127.0.0.1, при этом ядро (ecss-core) взаимодействует с сервером обработки мультимедиа-данных (ecss-media-server). Их взаимодействие происходит с использованием одного и того же адреса, но у каждой программной части свой транспортный порт: ecss-core — 5000, ecss-msr — 5040.

Для всех нод кластера определяется единый адрес для обращения к базе данных, например адрес 127.0.0.1. Таким образом, выполняется условие единообразия, при котором все ноды кластера имеют полностью одинаковые данные о текущем состоянии динамических составляющих программного коммутатора (например, история вызовов).

Подготовка сетевых интерфейсов системы

Согласно ТЗ, система имеет 4 сетевых интерфейса. Информацию об их состоянии можно посмотреть с помощью команды ifconfig или ip a:

eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 36:10:28:73:63:01 txqueuelen 1000 (Ethernet)

eth1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 36:10:28:73:63:01 txqueuelen 1000 (Ethernet)

eth2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether be:77:ea:52:4d:39 txqueuelen 1000 (Ethernet)

eth3: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether be:77:ea:52:4d:39 txqueuelen 1000 (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0

Сначала настраиваются сетевые интерфейсы. В Ubuntu 22 для их настройки используется утилита netplan.

Данная утилита позволяет настроить сетевую конфигурацию и затем загрузить ее в систему с помощью сетевого менеджера networkd или NetworkManager.

Блок кода
languagebash
sudo nano /etc/netplan/ecss_netplan.yaml


Примечание

Все остальные файлы из этого каталога необходимо переместить в другое место или удалить.

В конфигурациях для каждого хоста в первую очередь мы объявляем секцию ethernets, в которой описываются существующие в системе ethernet-интерфейсы, используемые в дальнейшем. Для каждого интерфейса необходимо отключить использование динамического распределения адресов (DHCP). 

Далее настраиваются vlan, на которых опционально определяются шлюзы для связи с внешним миром и адреса DNS-серверов, а также непосредственно IP-адреса для каждого интерфейса.

Предупреждение
titleВАЖНО

Обратите внимание, что во время редактирования netplan необходимо соблюдать правила разметки YAML:

  • Обязательное наличие минимум двух пробелов перед каждой строкой (кроме network);
  • Каждая подсекция дополнительно сдвигается на 2 пробела:

→  Секция                                                                   |network

→  Подсекция                                                             |_'_'bonds:

→  Подсекция описания секции bonds                    |_'_'_'_'bonded_one:

→  и т.д.                                                                       |_'_'_'_'...

  • Перед знаком ":" нет пробела, после — один пробел;
  • Перед знаком "-" количество пробелов такое, как будто начинается новый подраздел, после — один пробел.

Пример настройки файла ecss_netplan.yaml для варианта включения active-backup

Без форматирования
# Netplan для хоста ecss1 программного коммутатора
# Обратите внимание на обязательное наличие минимум двух пробелов в каждой строке и секции (кроме строки секции network)

network:
  version: 2 # Версия netplan
  renderer: networkd # Исполнитель конфигураций netplan
  ethernets: # Раздел описания интерфейсов ethernet
    enp0s3: # Название интерфейса ВМ к интернет
        dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса
        dhcp6: no
        addresses: [192.168.56.51/24]
    enp0s8: # Название интерфейса для SSW
        dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса
        dhcp6: no
  vlans:
    net.10: # Интерфейс управления
        id: 10
        link: enp0s3
        addresses: [10.0.10.51/24]
    net.20: # Интерфейс для VoIP
        id: 20
        link: enp0s8
        addresses: [10.0.20.51/24]

Следующие настройки bonds обязательны для сервера ECSS, чтобы схема работала верно:

mode: active-backup - задаёт режим работы, когда один из линков выбирается активным, а остальные остаются в резерве;
primary-reselect-policy: failure - указывает, что выбирать новый активный линк следует только тогда, когда текущий активный линк переходит в состоянии аварии. Это позволяет избежать лишних переключений;
gratuitous-arp: 5 - при смене активного линка в сторону коммутатора отправляются пять запросов gratuitous ARP, чтобы обновить на нём таблицу коммутации. Способствует более быстрому переключению;
all-slaves-active: true - заставляет принимать входящие кадры на backup интерфейсах. Таким образом балансировка трафика на MESе не мешает работе. Данные в сторону сервера идут со всех линков, а сервер отправляет данные только с active линка;
mii-monitor-interval: 100 - активирует мониторинг линков через интерфейс MII и указывает интервал опроса в 100мс;
up-delay: 1000 - указывает считать поднявшийся интерфейс доступным для работы не сразу, а сделать задержку в одну секунду после того, как интерфейс поднялся. Необходимо для того, чтобы избежать лишних переключений в случае, когда порт «прыгает» несколько раз из состояния «включено» в состояние «выключено» и обратно.

Предупреждение
languagebash

Также рекомендуется проверить отсутствие в каталоге /etc/netplan/ еще каких либо файлов, если  другие файлы присутствуют , то их нужно переместить в другой каталог или удалить, в противном случае возможна некорректная настройка сетевых интерфейсов и некорректная работа SSW. 

Применим установленные параметры командой:

Блок кода
languagebash
sudo netplan apply

На серверах системы необходимо настроить параметр "hostname".

На всех серверах системы желательно указать одинаковое имя пользователя (любое, кроме ssw). Лицензия ECSS-10 привязывается к ключу eToken/ruToken и к имени компьютера (hostname), поэтому необходимо использовать стандартные значения. Системный пользователь ssw создается при инсталляции пакета ecss-user.

Подсказка

Если используется один сервер, рекомендуемое значение hostname — ecss1;
Другие имена хостов возможны только при согласовании проекта, это потребуется для генерации лицензий. 

Указать имя хоста: ecss1 в файле /etc/hostname:

Блок кода
sudo nano /etc/hostname 

Указать  реальный Ipadd и имя хоста используемое в настоящий момент (для примера 10.0.10.51 ecss1) в файле /etc/hosts:

Блок кода
127.0.0.1   localhost # Адрес локальной петли, используется некоторыми сервисами ecss
10.0.10.51  ecss1 # Адрес хоста

"Оптимизация" операционной системы

Выставить параметры ОС в режим производительности

Используем  утилиту cpufrequtils.

...

Блок кода
languagebash
sudo systemctl daemon-reload


Отключить SWAP

Ubuntu сервер SSW работает в реальном масштабе времени , поэтому все необходимые данные должны находится в оперативной памяти, использование  файла подкачки (swap-файл - /swap. img) может привести к увеличению времени обработки вызовов приложения SSW ECSS10 , что недопустимо. Swap - отключаем. 
Выполнить последовательно три команды:

...

Без форматирования
languagebash
free -h
              total        used        free      shared  buff/cache   available
Mem:           3,9G        110M        3,2G        820K        535M        3,5G
Swap:            0B          0B          0B

Установка часового пояса

При инсталляции Ubuntu-22 не предлагается установить часовой пояс (по умолчанию — UTC). Его нужно установить вручную (для корректной работы системы тарификации, работ по расписанию и т. д.), например:

Блок кода
languagebash
sudo timedatectl set-timezone Asia/Novosibirsk

Улучшение работы высоконагруженных серверов

Улучшить работу высоконагруженных серверов можно увеличив лимит открытых файлов.

...

Предупреждение
titleВАЖНО
Установку пакетов требуется делать НЕ из-под пользователя ssw.

Обновление программного обеспечения операционной системы

  1. Для установки системы ECSS-10 необходимо добавить репозиторий ELTEX:
    Блок кода
    languagebash
    titleна новом 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"

    Далее необходимо выполнить импорт ключа командой:

    Блок кода
    languagebash
    titleна новом ssw
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 33CB2B750F8BB6A5

    Перед началом установки необходимо обновить ОС:

    Блок кода
    languagebash
    titleна новом ssw
    sudo apt update
    Примечание

    Если вы видите такое сообщение системы:

    Без форматирования
    W: http://archive.eltex.org/ssw/jammy/3.18/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

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

    Блок кода
    titleна новом ssw
    sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d


    Блок кода
    languagebash
    titleна новом ssw
    sudo apt upgrade


Установка и настройка программного обеспечения

Предупреждение
titleустановка пакетов deb
  ┌ версия ПО ECSS. Сейчас в заявке на сертификацию она заявлена как 3. 
  | Мы её менять не будем до следующей сертификации или
  │ выпуска принципиально новой версии системы.
  │
  │     ┌ версия System Release. Общая версия для всех компонент входящих в конкретный релиз. 
  |     | Меняем её централизовано, когда
  │     │ принимаем решение о выпуске нового релиза. Релизы между собой обычно не совместимы.
┌─┴┐ ┌──┴─┐
ECSS.SysRel.SubMaj.SubMin
            └──┬─┘ └──┬─┘
               │      └ версия Subsystem minor. Минорную версию подсистемы устанавливает разработчик подсистемы. 
               |        Минорную версию
               │        меняем при добавлении патча. Как правило, минорные версии в рамках одной мажорной версии 
               │        совместимы между собой и отличаются в рамках конкретных патчей.
               │
               └ версия Subsystem major. Мажорная версия устанавливается разработчиком подсистемы. 
                 Мажорную версию подсистемы необходимо менять при внесении в подсистему существенных изменений.


Утилита установки пакетов APT анализирует версию пакета слева направо, для примера мы имеем пакет 14.14.7.7 , 
в репозитории находятся пакеты
14.14.7.8
14.14.7.9
14.14.8.1
14.14.20 -14.14.28
то при выполнении команды sudo apt install имя пакета → будет автоматически проверен и установлен пакет 14.14.28 , так как он самый последний, анализ будет выполнен по 3-й позиции  (major), анализ по 4-й (minor) выполнен не будет (аналогичным образом будет выполнятся команда sudo apt upgrade).

В случае если для конкретной ситуации требуется перейти с версии 14.14.7.7 на версию 14.14.7.9 , стандартная команда → sudo apt upgrade , нам не поможет, так как будет выбран самый новый пакет, в данной ситуации нам необходимо в явном виде указать какую версию пакета мы хотим установить, в данном примере мы должны выбрать команду → sudo apt install имя пакета=14.14.7.9 . Обычно это необходимо для тестирования определенного патча, для стандартных обновлений достаточно выбора привычной команды установки /обновления пакета

...

Примечание

Перед началом установки пакетов ecss , нужно убедиться в соответствии полосы пропускания СПД необходимым требованиям.
Для этого выполнить команду  sudo ethtool  <имя интерфейса> для всех физических интерфейсов.

Раскрыть
titleПример:

sudo ethtool net.20
Settings for net.20:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Auto-negotiation: on
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    MDI-X: off (auto)
    Link detected: yes

Проверить значение  следующих параметров:
Advertised auto-negotiation: Yes
Speed: 1000Mb/s  (не менее)
Duplex: Full


Настройка пакета ecss-dns-env

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

...

Предупреждение
titleВАЖНО

В случае последующей коррекции IP-адресов следует использовать команду: 

Блок кода
languagebash
sudo dpkg-reconfigure ecss-dns-env


Установка  Postgres

Предупреждение
titleПримечание

Перед установкой ecss-postgres-bdr-ssw в системе, в apt sources, должен быть добавлен docker для этого выполнить следующие команды:

Блок кода
titleна новом ssw
sudo install -m 0755 -d /etc/apt/keyrings
Блок кода
titleна новом ssw
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
Блок кода
titleна новом ssw
sudo chmod a+r /etc/apt/keyrings/docker.asc
Блок кода
titleна новом ssw
sudo sh -c "echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu   jammy stable' >> /etc/apt/sources.list.d/docker.list"
Блок кода
languagebash
titleна новом ssw
sudo apt update && sudo apt upgrade

...

Раскрыть
titleВ случае использования ELM лицензирования

Установить пакет License Provider:

Блок кода
titleна ecss2
sudo apt install ecss-license-provider

При установке пакета ecss-license-provider будут заданы вопросы:

ВопросыОтветыПримеры

Адрес для соединения с License Provider: 
License Provider listen ip:

0.0.0.0 (значение по умолчанию)

Порт для соединения c License Provider:
License Provider listen port:
4321 (значение по умолчанию)

Выберите уровень логирования:
Log level:
info (значение по умолчанию),
возможные варианты: debug, error, info

Ключ-имя кластера резервирования:
License Provider cluster key:

указать уникальное имя
ecss-lm-cluster (значение по умолчанию)

Подсказка
Менеджеры с одинаковыми именами попытаются собраться в кластер и резервировать друг друга.


Данные сохраняются в файле /etc/ecss/ecss-license-provider/config.env:

Без форматирования
ECSS_LM_HOST=0.0.0.0
ECSS_LM_PORT=4321
ECSS_LM_LOG_LEVEL=info
RELEASE_COOKIE=ecss-abf-lm-cluster

Конфигурация License Provider (LP)

Сервис ecss-license-provider использует два конфигурационных файла: /etc/ecss/ecss-license-provider/config.env и /etc/ecss/ecss-license-provider/config.yaml.

В файл config.env информация сохраняется в момент установки пакета ecss-license-provider.

Config.yaml файл содержит основные настройки для подключения к ELM-серверу, откуда брать лицензии, какие лицензии, и куда их потом передавать, все это нужно сконфигурировать вручную.

Блок кода
titleинформация в файле после установки
elm_addresses: []
licenses: []
ecss_nodes: []
Для заполнения данных полей откройте файл конфигурации ecss-elm-adapter используемого в версии 3.17 ssw /etc/ecss/ecss-elm-adapter/config.env:
Блок кода
titleна ecss2
сat /etc/ecss/ecss-elm-adapter/config.env 
ELM_HOST=elm.eltex-co.ru
ELM_PORT=8099
ECSS_PRODUCT_ID=ECSS2000000
ECSS_LICENSE_KEY=ssw987654
LOG_LEVEL=info
LICENCE_FAIL_TIMER_SECONDS=10
LICENCE_PULL_TIMER_SECONDS=360

В поле elm_adresses нужно прописать список серверов ELM, к которым мы хотим подключаться для получения лицензий. Первый адрес в списке используется как основной. Дополнительные строки с адресами работают как резерв.
пример:
- "elm.eltex-co.ru:8099"
- "192.168.111.22:8099"
- "elm-3.eltex.loc:8099"

Дальше задаются сами лицензии в поле licenses.

  • id может быть любой, главное чтоб был уникальный у каждой лицензии. Влияет только на адрес лицензии на самом License Provider (например 0, 1, 2, 3).
  • kind. Для SSW поддерживается только SSW (заглавными буквами).
  • type выбирается как elm, если запрашивать данную лицензию нужно с ELM-сервера. Если нужно использовать файловую лицензию SSW, то тип выбирается как ecss_license.
    • при elm типе необходимо задать поля license_key и product_id для идентификации лицензии.
    • при ecss_license типе задается поле license, содержащее ключ статичной лицензии.
Примечание

Параметры license_key = ECSS_LICENSE_KEY и product_id = ECSS_PRODUCT_ID должны быть согласованы с данными, ранее загруженными на ELM-сервере.

Блок ecss_nodes

В нем нужно задать данные сервисов, которые будут получать лицензию. Сервис задается тремя параметрами:

  • id - идентификатор сервиса. В случае с SSW должен совпадать с ECSS_ID лицензируемого SSW.
  • kind - тип лицензируемого сервиса. По аналогии с блоком лицензий, поддерживаются типы SSW и AUP. Для SSW поддерживается только SSW.
  • license_id - идентификатор лицензии, которая будет отправляться на данный сервис. Соответствует идентификаторам лицензии из блока licenses.
Примечание
Два SSW с разными ECSS_ID не могут получить одну и ту же лицензию, конфигурация с таким распределением будет помечена некорректной.
Кроме того, два SSW с одинаковыми ECSS_ID не смогут одновременно получать одну и ту же лицензию с одного License Provider, поэтому крайне важно корректно устанавливать свой ECSS_ID и делать его уникальным как минимум в зоне видимости используемого License Provider.
Примечание

ECSS_ID указанный в файле /etc/ecss/ecss-license-provider/config.yaml, должен совпадать с ECSS_ID ( идентификатор ECSS-узла) которое указываем при установке пакета ecss-node

Предупреждение

При обновлении, имя нового ECSS-узла (ECSS_ID) нужно обязательно указывать отличное от имени старого ECSS-узла. В противном случае при их совпадении сервис ecss-mycelium не активируется.


Подсказка

Формат ECSS_ID:
Начинается и заканчивается обязательно латинской буквой или цифрой, в теле же могут использоваться точки и тире. 

Без форматирования
[A-Za-z0-9][A-Za-z0-9.-][A-Za-z0-9]
Блок кода
titleПример: файла config.yaml на основе данных из файла /etc/ecss/ecss-elm-adapter/config.env
elm_addresses:
 - "elm.eltex-co.ru:8099"
licenses:
 - id: 0
   kind: SSW
   type: elm
   license_key: "ssw987654"
   product_id: "ECSS2000000"
ecss_nodes:
 - id: test.update
   kind: ssw
   license_id: 0

Выполнить перезагрузку сервиса ecss-license-provider.service для обновления конфигурации из файла /etc/ecss/ecss-license-provider/config.yaml следующей командой:

Блок кода
titleесли кластер, то на обоих хостах
sudo systemctl restart ecss-license-provider.service


Установка ecss-node

Установка обязательного пакета ecss-node включает в себя установку и первоначальную настройку основных подсистем.

...

Без форматирования
titleвыполняется в CoCon
/system-status 
Checking...
┌─┬───────────────┬─────────────────────────┬───────────────┬────────────┬──────┐
│ │     Node      │         Release         │ Erlang nodes  │Mnesia nodes│Uptime│
├─┼───────────────┼─────────────────────────┼───────────────┼────────────┼──────┤
│ │core1@ecss1    │ecss-core-3.18.0.271     │core1@ecss1    │not running │3m 55s│
│ │ds1@ecss1      │ecss-ds-3.18.0.271       │ds1@ecss1      │ds1@ecss1   │4m 40s│
│ │md1@ecss1      │ecss-mediator-3.18.0.271 │md1@ecss1      │md1@ecss1   │3m 50s│
│ │mycelium1@ecss1│ecss-mycelium-3.18.0.271 │mycelium1@ecss1│not running │5m 28s│
│ │sip1@ecss1     │ecss-pa-sip-3.18.0.271   │sip1@ecss1     │sip1@ecss1  │3m 45s│
│ │sorm1@ecss1    │ecss-sorm-3.18.0.271     │sorm1@ecss1    │not running │1m 55s│
└─┴───────────────┴─────────────────────────┴───────────────┴────────────┴──────┘

Режимы лицензирования.

Лицензирование с использованием файловой лицензии

Раскрыть
titleВ случае использования файлового лицензирования
Информация
titleВ случае использования файлового лицензирования

Никаких дополнительных действий выполнять не требуется.

Без форматирования
/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 softswitch                         │31.12.2026 23:59:59 │224d 21h 31m│
│0 │                   │ECSS DEFAULT    │      │Default licence                             │                    │            │
└──┴───────────────────┴────────────────┴──────┴────────────────────────────────────────────┴────────────────────┴────────────┘

Лицензирование с использованием ELM сервиса

Раскрыть
titleВ случае использования ELM лицензирования

Выполнить конфигурацию подключения SSW к License Provider следующей командой в CoCon, (в примере License Provider установлен на хосте ecss1, IPadd хостов 10.0.10.51. Значение порта из файла /etc/ecss/ecss-license-provider/config.env по умолчанию 4321):

Блок кода
titleвыполняется в CoCon
/system/licence/manager/set --hosts [https://10.0.10.51:4321]

После выполнения проверить статус подключения командой:

Блок кода
titleвыполняется в CoCon
/system/licence/manager/show-status
┌───────────────────────┬───────┬─────┐
│         Host          │Current│Alive│
├───────────────────────┼───────┼─────┤
│https://10.0.10.51:4321│*      │true │
└───────────────────────┴───────┴─────┘

Хост должен иметь статус alive=true. И быть «current». 

  • Current - отображает к какому хосту подключён SSW. Если есть подключение, указывается *, если нет - ничего не указано.
  • Alive - отображает статус доступности хоста (healthcheck).
Информация
titleПодключение к License Manager

Отсутствие подключения к License Provider \ ELM будет равноценно отсутствию доступа к токену, что приведёт к критическим авариям, переходу в аварийный режим по истечении которого, если связь не будет восстановлена, система перейдёт на Default-лицензию.

Данное поведение применимо только при работе в elm-режиме.

Если статус к одному из хостов License Provider показан current, можно посылать запрос на загрузку лицензии на SSW командой:

Блок кода
titleвыполняется в CoCon
/cluster/storage/ds1/licence/request
Блок кода
titletype=elm
/cluster/storage/ds1/licence/request      
Licence received      
[*******                                                               ] 6s 2ms   
Success: Licence parameters applied
Блок кода
titletype=elm
/cluster/storage/ds1/licence/list-licence 
┌──┬───────────────────┬────────────┬──────┬────────────────┬────────────────────┬────────────────────┬─────────┐
│Id│Creation date(UTC) │   SSW ID   │Active│  Description   │Comm. Exp. Date(UTC)│Expiration date(UTC)│Time left│
├──┼───────────────────┼────────────┼──────┼────────────────┼────────────────────┼────────────────────┼─────────┤
│1 │14.04.2026 11:18:34│ECSS2000000 │*     │ECSS ELM License│09.04.2027 16:26:34 │06.06.2026 10:49:12 │1d 6h 59m│
│0 │01.01.1990 00:00:00│ECSS DEFAULT│      │Default licence │                    │                    │         │
└──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────────────┴─────────┘


Установка пакетов ecss-restfs, ecss-media-server, ecss-web-conf

Далее устанавливаются пакеты ecss-restf  затем ecss-media-server, ecss-media-resources, , ecss-web-conf и другие в любом порядке:

ecss-restfs

Блок кода
languagebash
titleна новом ssw
sudo apt install -y ecss-restfs

...

Блок кода
titleПример:
abf@ecss1:/var/lib/ecss/restfs/domain$ ls -la /var/lib/ecss/restfs/domain
итого 8
drwxr-xr-x 2 www-data www-data 4096 апр 22 18:21 .
drwxr-xr-x 7 www-data www-data 4096 мая 28 15:07 ..

abf@ecss1:/var/lib/ecss/restfs/domain$ sudo rsync -a abf@10.0.10.10:/var/lib/ecss/restfs/domain/ /var/lib/ecss/restfs/domain/

abf@ecss1:/var/lib/ecss/restfs/domain$ ls -la test_domain/records/2026_05_28
итого 610
drwxrwxrwx 2 www-data www-data  4096 мая 28 14:56 .
drwxrwxrwx 3 www-data www-data  4096 мая 28 14:27 ..
-rw-r--r-- 1 www-data www-data 71892 мая 28 14:27 2026-05-28_14-27-02_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:27 2026-05-28_14-27-02_t_42009-42007.pcm.meta
-rw-r--r-- 1 www-data www-data 71892 мая 28 14:31 2026-05-28_14-31-19_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:31 2026-05-28_14-31-19_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 63904 мая 28 14:55 2026-05-28_14-55-24_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:55 2026-05-28_14-55-24_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 39940 мая 28 14:55 2026-05-28_14-55-31_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:55 2026-05-28_14-55-31_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 15976 мая 28 14:55 2026-05-28_14-55-37_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:55 2026-05-28_14-55-37_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 79880 мая 28 14:55 2026-05-28_14-55-48_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:55 2026-05-28_14-55-48_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 55916 мая 28 14:56 2026-05-28_14-55-59_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:55 2026-05-28_14-55-59_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 47928 мая 28 14:56 2026-05-28_14-56-04_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:56 2026-05-28_14-56-04_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 31952 мая 28 14:56 2026-05-28_14-56-28_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:56 2026-05-28_14-56-28_t_42009-42007.pcm.meta
-rw-r--r-- 1 www-data www-data 31952 мая 28 14:56 2026-05-28_14-56-37_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:56 2026-05-28_14-56-37_t_42009-42007.pcm.meta
-rw-r--r-- 1 www-data www-data 95856 мая 28 14:56 2026-05-28_14-56-42_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:56 2026-05-28_14-56-42_t_42009-42007.pcm.meta

ecss-media-server

Блок кода
languagebash
titleна новом ssw
sudo apt install -y ecss-media-server

...

Подсказка

Вы увидите сообщение:

Информация

Job for ecss-media-server.service failed because the control process exited with error code.
See "systemctl status ecss-media-server.service" and "journalctl -xeu ecss-media-server.service" for details.

Мы указали рабочие IP адреса для media сервиса, а они пока закреплены за старым ecss1. После переключения IP адресов сервис запустится автоматически.


ecss-web-conf

Блок кода
titleна новом ssw
sudo apt install ecss-web-conf

...

Проверьте возможность подключения к веб-интерфейсу http://10.0.10.51,  пользователь/пароль — admin/password. В настоящий момент не все функции будут доступны, но веб-интерфейс должен работать, а вход в систему — быть успешным.

Отключение SSW версии 3.17

Для отключения старого SSW версии 3.17 выполнить следующие команды:
Отключение сервисов

Блок кода
titleна старом SSW
sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm

Копирование БД Postgres

Скопировать БД Postgres со старого ecss1, для этого выполнить команду:

...

Блок кода
titleна новом ssw
sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml start

Замена IP адресов на старом ecss1

Изменить IP адреса 10.0.10.41/10.0.20.41 на неиспользуемые на сети (для примера на 10.0.10.61/10.0.20.61):

...

Блок кода
titleна старом SSW
sudo netplan apply

Переключение нового SSW на рабочие IP адреса

После освобождения рабочих IP адресов со старого SSW можно подключить их к новому SSW. Выполнить команду:

...