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

Ключ

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

...

  1. Предупреждение
    titlePay attention
    Make a full backup.
  2. Update PostgreSQL:
    1. Check the addresses where the Postgres database is running, run the following command:
      Блок кода
      titleon ecss2
      psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;"
      Подсказка

      Default password is "postgres1"


      Блок кода
      titleExample:
      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)
      
    2. Disable the Docker container:
      Блок кода
      titleon ecss2
      sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down

      Блок кода
      titleExample
       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 
    3. Remove the old deb packet, since it doesn't support the upgrade option:
      Блок кода
      titleon ecss2
      sudo apt remove ecss-postgres-bdr-ssw
      Предупреждение
      titleImportant!

      Execut the remove command, not purge, because 'remove' saves the 'volumes' directory containing the database tables.


      Блок кода
      titleExample:
      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) …
    4. Install the new deb package:
      Блок кода
      titleon ecss2
      sudo apt install ecss-postgres-bdr-ssw 
      Предупреждение
      titleImportant!

      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.

      Информация
      QuestionAnswerExample

      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 "a", 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?

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

      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:

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

      IP of the neighbor node (specified during its installation, checked in step "a", 10.0.10.51 in the example).




      10.0.10.51 (must be specified)


      Блок кода
      titleIf the installation is successful, during the replication setup phase, we will see
      sudo apt install ecss-postgres-bdr-ssw
      . . .
      =============================
       Checking replication status 
      =============================
      BDR replication is configured correctly: the data matches.
      . . .
      =======================================================
      =======================================================
       ecss-postgres-bdr-ssw successfully installed/updated! 
      =======================================================
      =======================================================
      
      
      ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓  ┳┓┳┓┳┓  ┏┓┏┓┓ ┏
      ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓  ┣┫┃┃┣┫  ┗┓┗┓┃┃┃
      ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛  ┻┛┻┛┛┗  ┗┛┗┛┗┻┛
    5. After the installation make sure, that the new image is loaded and the docker started. Run the following command:
      Блок кода
      titleon ecss2
      docker ps

      Блок кода
      titleExample:
      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
  3. Updating SSW.
    1. Updating the ecss-dns-env package:
      Блок кода
      titleon ecss2
      sudo apt install ecss-dns-env
    2. Updating the ecss-user package:
      Блок кода
      titleon ecss2
      sudo apt install ecss-user
    3. Updating the ecss-utils package:
      Блок кода
      titleon ecss2
      sudo apt install ecss-utils
    4. Раскрыть
      titleIf the ELM licensing is used

      Install the License Provider package:

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

      When installing the ecss-license-provider package the following questions will be asked:

      QuestionsAnswersExamples

      License Provider listen ip:

      0.0.0.0 (default value)

      License Provider listen port:4321 (default value)

      Log level:info (default value),
      other options: debug, error, info

      License Provider cluster key:

      specify a unique name
      ecss-lm-cluster (default value)

      Подсказка

      Managers with the same names will attempt to form a cluster for mutual failover.


      The data is saved to the /etc/ecss/ecss-license-provider/config.env file:

      Без форматирования
      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) configuration

      The ecss-license-provider service uses two configuration files: /etc/ecss/ecss-license-provider/config.env and /etc/ecss/ecss-license-provider/config.yaml.

      The information is saved to the config.env file when the ecss-license-provider is installed.

      The config.yaml file contains general settings for connecting to the ELM server and information about licenses: what licenses to take, where to take them from, and where to send them, all this information should be configured manually.

      Блок кода
      titleinformation in the file after installation
      elm_addresses: []
      licenses: []
      ecss_nodes: []
      To fill out these fields, open the ecss-elm-adapter configuration file used in the version 3.17 /etc/ecss/ecss-elm-adapter/config.env:
      Блок кода
      titleon ecss2
      cat /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

      In the elm_addresses field, you must specify a list of ELM servers to which you want to connect to obtain licenses.
      First address in the list is used as the main one. Additional lines contain backup addresses.
      Example:

      Блок кода
      titleExample:
      elm_addresses:
       - "elm.eltex-co.ru:8099"
       - "192.168.111.22:8099"
       - "elm-3.eltex.loc:8099"



      Then licenses in the licenses field are specified.

      • The id can be anything, as long as it is unique for each license. It only affects the license address on the License Provider itself (e.g., 0, 1, 2, 3).
      • kind. For SSW, only SSW (in uppercase) is supported.
      • type is set to elm if this license is to be requested from the ELM server. If you need to use an SSW file-based license, set the type to ecss_license.
        • For the elm type, you must specify the license_key and product_id fields to identify the license.
        • For the ecss_license type, specify the license field, which contains the static license key.
      Примечание

      license_key = ECSS_LICENSE_KEY and product_id = ECSS_PRODUCT_ID parameters must match the data previously uploaded to the ELM server.

      ecss_nodes block.

      You must specify the details of the services that will receive the license. A service is defined by three parameters:

      • id - the service identifier. In the case of SSW, this must match the ECSS_ID of the SSW being licensed.
      • kind - the type of service being licensed. As with the licenses block, the SSW and AUP types are supported. For SSW, only the SSW type is supported.
      • license_id - the identifier of the license that will be sent to this service. It corresponds to the license identifiers from the licenses block
      Примечание
      Two SSWs with different ECSS_IDs cannot receive the same license; a configuration with such an assignment will be marked as invalid.
      Additionally, two SSWs with identical ECSS_IDs cannot simultaneously obtain the same license from a single License Provider; therefore, it is extremely important to set your ECSS_ID correctly and ensure it is unique, at least within the scope of the License Provider being used.
      Подсказка

      ECSS_ID format.
      It must begin and end with a Latin letter or a digit; periods and dashes may be used within the string. 

      Без форматирования
      [A-Za-z0-9][A-Za-z0-9.-][A-Za-z0-9]
      Примечание

      For an SSW operating in a cluster, specify only one entry in the ecss_nodes block per cluster; you cannot specify entries individually for each host. Otherwise, two requests with the same ECSS_ID will be generated, which is not allowed.

      Блок кода
      titleExample of a config.yaml file based on data from the file
      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

      Restart the ecss-license-provider.service service to up date the configuration from the /etc/ecss/ecss-license-provider/config.yaml file via the following command:

      Блок кода
      titlefor a cluster execute on both hosts
      sudo systemctl restart ecss-license-provider.service

      Раскрыть
      titleIf a file-based license is used

      No addditional actions required.

    5. Update the ecss-node package:
      Блок кода
      titleна on ecss2
      sudo apt install ecss-node

      Информация

      ecss-node installation questions:

      QuestionAnswerExample

      Cookie for the core node: (specify the unique cookie for the core, the example uses ecss-core-example)

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

      In a cluster cookies should be unique for the nodes of the same type.

      ecss-core-example (needs to be entered)

      Cookie for the ds node: (specify the unique cookie for the ds, the example uses ecss-ds-example)

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

      In a cluster cookies should be unique for the nodes of the same type.

      ecss-ds-example (needs to be entered)

      Cookie for the mediator node: (specify the unique cookie for the mediator, the example uses ecss-mediator-example)

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

      In a cluster cookies should be unique for the nodes of the same type.

      ecss-mediator-example (needs to be entered)

      Cookie for the pa-sip node: (specify the unique cookie for the pa-sip, the example uses ecss-pa-sip-example)

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

      In a cluster cookies should be unique for the nodes of the same type.

      ecss-pa-sip-example (needs to be entered)

      Cookie for the mycelium node: (specify the unique cookie for the mycelium, the example uses ecss-mycelium-example)

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

      In a cluster cookies should be unique for the nodes of the same type.

      ecss-mycelium-example (needs to be entered)

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

      Accept all configuration file changes


  4. Enable the nodes.
    Enable the SSW services using the following commands: 
    Блок кода
    titleon ecss2
    sudo systemctl unmask ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm

    Блок кода
    titleon ecss2
    sudo systemctl enable ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm

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

    Before starting the SSW nodes, change the cluster name (to any other name—just make sure it doesn’t match that of a neighbor (ecss1) or any other potential PBX in your network, otherwise it will try to connect to it). To do this, in the /etc/ecss/ecss-mycelium/mycelium.config file change the "{cluster_name, 'eltex.test'}" line to "{cluster_name, 'eltex1.test'}", for example.

    Блок кода
    titleon ecss2
    sudo nano /etc/ecss/ecss-mycelium/mycelium.config
    Блок кода
    titleExample:
    [
        {mycelium_broker, [
            {cluster_name, 'eltex1.test'},
            {compress_module, elx_data_nif},
            {session_gc_timeout, 3000},
            {queue_gc_timeout, infinity}
    . . .


  5. Starting SSW on ecss2. Start the following services:
    ecss-mycelium
    Блок кода
    titleon ecss2
    sudo systemctl start ecss-mycelium
    ecss-ds
    Блок кода
    titleon ecss2
    sudo systemctl start ecss-ds
    ecss-core
    Блок кода
    titleon ecss2
    sudo systemctl start ecss-core
    ecss-mediator
    Блок кода
    titleon ecss2
    sudo systemctl start ecss-mediator

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

    Do not start PA-SIP yet

  6. Check the status of services by running the system-status command in CoCon:
    Блок кода
    titleperformed in 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  │
    └─────────────┴───────────┴─────────────┴───────────┴───────────┘
  7. Раскрыть
    titleIf the ELM licensing is used
    Disable the ecss-elm-adapter service on ecss1 using the command below:
    Блок кода
    titleon ecss1
    sudo systemctl stop ecss-elm-adapter.service

    Configure SSW connection to License Provider by running the command below in CoCon, (in the example License Provider is installed in a cluster, host IPs are 10.0.10.51 and 10.0.10.52. Port value is taken from the /etc/ecss/ecss-license-provider/config.env  file, 4321 by default):

    Блок кода
    titleperformed in CoCon
    /system/licence/manager/set --hosts [https://10.0.10.51:4321, https://10.0.10.52:4321]
    Подсказка

    If License Provider is installed on SSW hosts specify the OAM IP addresses.

    After command execution check the connection status using the following command:

    Блок кода
    titleperformed in CoCon
    /system/licence/manager/show-status           
    ┌───────────────────────┬───────┬─────┐
    │         Host          │Current│Alive│
    ├───────────────────────┼───────┼─────┤
    │https://10.0.10.51:4321│*      │true │
    │https://10.0.10.52:4321│       │true │
    └───────────────────────┴───────┴─────┘

    All hosts should have the alive=true status. One should have the "current" status. 

    • Current – shows to which host the SSW is connected. If there is a connection, it is specified by *, and if there isn't – nothing is specified.
    • Alive – shows the host availability status (healthcheck).
    Информация
    titleConnecting to the License Manager

    A lack of connection to the License Provider or ELM will result in a loss of access to the token, leading to critical failures and a transition to emergency mode; after this period, if the connection is not restored, the system will switch to the default license.

    This behavior applies only when operating in ELM mode.

    If status of one of the License Provider hosts is current, a request for uploading the license to SSW can be sent using the following command:

    Блок кода
    titleperformed in 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 │03.02.2026 16:26:34│ECSS2000000 │*     │ECSS ELM License│03.02.2027 16:26:34 │14.03.2026 10:49:12 │1d 6h 59m│
    │0 │01.01.1990 00:00:00│ECSS DEFAULT│      │Default licence │                    │                    │         │
    └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────────────┴─────────┘



    Раскрыть
    titleIf a file-based license is used

    No additional actions are required.

  8. Updating the ecss-restfs package.
    Подсказка
    Accept all new configuration files by choosing Y.

    Блок кода
    titleon ecss2
    sudo apt install ecss-restfs
  9. Updating the ecss-media-server package.
    Блок кода
    titleon ecss2
    sudo apt install ecss-media-server

  10. Updating the ecss-media-resources package.
    Блок кода
    titleon ecss2
    sudo apt install ecss-media-resources
  11. Updating the ecss-web-conf package.
    Блок кода
    titleon ecss2
    sudo apt install ecss-web-conf
  12. Раскрыть
    titleUpdating optional service packages

    Check the list of installed services using the following command:

    Блок кода
    titleon ecss2
    sudo dpkg -l | grep ecss
    Блок кода
    titleExample:
    sudo dpkg -l | grep ecss
    ii  ecss-cc-ui                             17.1.0.36+cc-ui                         amd64        Eltex/ECSS-10 UI and API for call center
    ii  ecss-dns-env                           18.0.0                                  amd64        Eltex/ECSS-10 Configuration settings for domain service
    ii  ecss-media-resources                   18.0.0                                  amd64        Eltex/ECSS-10 Media resources
    ii  ecss-media-server                      18.0.7                                  amd64        Eltex/ECSS-10 Media server
    ii  ecss-node                              18.0.217                                amd64        Eltex/ECSS-10 Node services
    ii  ecss-peeper-client                     17.1.0.23                               amd64        Eltex/ECSS-10 peeper client
    ii  ecss-postgres-bdr-ssw                  18.0.0+ssw                              amd64        Eltex/Postgres BDR
    ii  ecss-restfs                            18.0.21                                 amd64        Eltex/ECSS-10 RestFS API interface for filesystem
    ii  ecss-teleconference-ui                 17.1.0.23                               amd64        Eltex/ECSS-10 UI and API for Teleconference
    ii  ecss-user                              18.0.0                                  amd64        Eltex/ECSS-10 SSW user environment
    ii  ecss-utils                             18.0.0                                  amd64        Eltex/ECSS-10 Utilities for reading binary logs
    ii  ecss-web-conf                          18.0.31                                 amd64        Eltex/ECSS-10 Web configurator

    Based on the results of running the command, reinstall packages with version 17.1.*. In this example — ecss-cc-ui/ecss-peeper-client/ecss-teleconference-ui.

    Updating the ecss-teleconference-ui package.

    Блок кода
    titleon ecss2
    sudo apt install ecss-teleconference-ui

    Updating the ecss-crm-server package.

    Блок кода
    titleon ecss2
    sudo apt install ecss-crm-server

    Updating the ecss-cc-ui package.

    Блок кода
    titleon ecss2
    sudo apt install ecss-cc-ui

    Updating the ecss-call-api package.

    Блок кода
    titleon ecss2
    sudo apt install ecss-call-api

    Updating the ecss-peeper-client package.

    Блок кода
    titleon ecss2
    sudo apt install ecss-peeper-client
  13. Раскрыть
    titleIf the ELM licensing is used
    Delete the no longer used ecss-elm-adapter package using the following command:
    Блок кода
    titleon ecss2
    sudo apt purge ecss-elm-adapter

    Раскрыть
    titleIf a file-based license is used

    No additional actions are required

...