Рекомендуется производить обновление с новой установки операционный системы (Ubuntu Server 18.04.x LTS 64bit) и новой разметки дискового пространства.
В данном разделе описан процесс обновления операционной системы и программных компонентов ECSS-10, когда по каким-либо причинам новая установка невозможна.
В версии 3.14.15 изменился алгоритм проверки валидности паспорта лицензий. В предыдущих версиях допускался паспорт без окончания срока действия, сейчас такое недопустимо. Во избежание проблем после обновления, рекомендуется на первом этапе проверить параметры паспорта следующей командой:
В случае отсутствия строчки Expired date (паспорт без окончания срока действия), до начала обновления необходимо обратится в коммерческий отдел Элтекс для обновления паспорта и лицензии. |
Выполнить полный «бэкап» (см. «Регламентное обслуживание и резервное копирование»).
Если нужны последние данные биллинга, то необходимо финализировать текущую cdr и скачать в надежное место, например:
/domain/bsk.test/cdr/make_finalize_cdr bsk3 Created file(s): cdrbsk3_20210330_11_05_38_t.csv |
Посмотреть, сколько зарегистрированных абонентов, пример:
/domain/bsk.test/sip/user/registered * .... ┌───────────────┐ │ elements: 320 │ └───────────────┘ |
При обновлении кластера следует обновлять сервера по очереди. Таким образом, при обновлении один из серверов будет всегда запущен и работа сервисов не будет прервана. Для разделения кластера следует использовать инструмент ecss-control на обоих серверах (Описание команд утилиты приведено в «Приложении Н»).
Переведите трафик на второй сервер, выключив keepalive на первом хосте:
sudo systemctl stop keepalived.service |
Командой ifconfig проверьте, что все IP-адреса находятся на ecss2.
Выполните разделение SSW на два независимых сервера следующей командой:
Команда ecss-control работает со стандартными именами хостов : ecss1/ecss2. |
sudo ecss-control detach |
sudo ecss-control detach detach host: ecss2, ip: 10.10.0.2 complete sudo ecss-control status locked ip: 10.10.0.2 |
После разделения кластера необходимо выключить все ноды на сервере, который будет обновляться первым:
sudo systemctl stop ecss-mediator.service sudo systemctl stop ecss-pa-sip.service sudo systemctl stop ecss-core.service sudo systemctl stop ecss-ds.service sudo systemctl stop ecss-mycelium.service |
Выполнить обновление:
sudo apt update |
Подробнее в разделе «Инсталляция пакетов ECSS».
Обновите ecss-mysql на первом хосте:
sudo apt install ecss-mysql |
Если возникла проблема с какой-либо базой данных, следует произвести перезагрузку сервиса aparmor, затем удалить базу данных из mysql, а после снова установить ecss-mysql:
sudo systemctl restart apparmor.service mysql -uroot -p<root_mysql_password> -e 'DROP DATABASE <проблемная база данных>' sudo apt install ecss-mysql |
Установить пакет ecss-node:
sudo apt install ecss-node |
В процессе установки будут задаваться вопросы о сохранении текущих версий конфигурационных файлов. Рекомендуется ставить новые, т. е. отвечать «Y». |
во время установки пакета ecss-node , система сбросит конфигурацию кластера на дефолтное значение. Поэтому потребуется отредактировать файл /etc/ecss/ecss-mycelium/mycelium1.config. выполните команду :
пропишите имя кластера, в примере "test_cluster"
|
Установить пакеты, содержащие основные подсистемы:
sudo apt install ecss-restfs |
sudo apt install ecss-media-server |
sudo apt install ecss-media-resources |
sudo apt install ecss-web-conf |
При установке ecss-media-server рекомендуется ответить на вопрос о конфигурировании утвердительно. |
В процессе установки будут задаваться вопросы о сохранении текущих версий конфигурационных файлов. Рекомендуется ставить новые, т. е. отвечать «Y». |
Запустите сервисы следующими командами:
sudo systemctl start ecss-mycelium.service |
sudo systemctl start ecss-ds.service |
sudo systemctl start ecss-core.service |
sudo systemctl start ecss-pa-sip.service |
sudo systemctl start ecss-mediator.service |
проверить статус сервисов командой:
systemctl is-active ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium |
Проверить состояние сервисов в CoCon:
/system-status Checking... ┌─┬───────────────┬──────────────────────────┬───────────────┬────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes│Uptime│ ├─┼───────────────┼──────────────────────────┼───────────────┼────────────┼──────┤ │ │core1@ecss1 │ecss-core-3.14.15.1163 │core1@ecss1 │not running │3m 45s│ │ │ds1@ecss1 │ecss-ds-3.14.15.1163 │ds1@ecss1 │ds1@ecss1 │3m 51s│ │ │md1@ecss1 │ecss-mediator-3.14.15.1163│md1@ecss1 │md1@ecss1 │3m 32s│ │ │mycelium1@ecss1│ecss-mycelium-3.14.15.1163│mycelium1@ecss1│not running │3m 58s│ │ │sip1@ecss1 │ecss-pa-sip-3.14.15.1163 │sip1@ecss1 │sip1@ecss1 │3m 39s│ └─┴───────────────┴──────────────────────────┴───────────────┴────────────┴──────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss1 │ msr.ecss1 │ 3.14.15.221 │ connected │ 00:02:28 │ │ │ msr.ecss2 │ 3.14.14.24 │ connected │ 00:02:28 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘ |
В версии 3.14.15 появилась возможность использовать любые имена хостов (стандартные имена отсутствуют), поэтому нужно указать какие имена мы будем использовать, для этого выполните следующую команду (в примере имена хостов ecss1/ecss2):
/system/clusters/set [ecss1, ecss2] |
/system/clusters/set [ecss1, ecss2] Success: System initialized on hosts: ["ecss2","ecss1"] /system/clusters/list ┌────────┬──────────────┬──────────────┐ │ Role │ Cluster │ Nodes │ ├────────┼──────────────┼──────────────┤ │storage │ds1 │ds1@ecss2 │ │ │ │ds1@ecss1 │ │core │core1 │core1@ecss2 │ │ │ │core1@ecss1 │ │adapter │sip1 │sip1@ecss2 │ │ │ │sip1@ecss1 │ │adapter │megaco1 │megaco1@ecss2 │ │ │ │megaco1@ecss1 │ │adapter │sigtran1 │sigtran1@ecss2│ │ │ │sigtran1@ecss1│ │adapter │sorm1 │sorm1@ecss2 │ │ │ │sorm1@ecss1 │ │mediator│md1 │md1@ecss2 │ │ │ │md1@ecss1 │ │virtual │.system_bridge│ │ │virtual │.virtual │ │ └────────┴──────────────┴──────────────┘ |
В случае использования для сигнальной сети нескольких vlan-ов , необходимо скорректировать конфигурационный файл /etc/ecss/ecss-media-server/config.xml описав параметр "via": via — задается список интерфейсов, которые могут быть отправлены в сообщении "SIP REGISTER" поле "Via":
|
Хост ecss1 обновлен , активизируем трафик командой:
sudo systemctl start keepalived.service |
Чтобы перевести трафик на обновленный сервер, нужно на втором сервере остановить службу keepalived:
sudo systemctl stop keepalived.service |
Если нужны последние данные биллинга, то необходимо финализировать текущую cdr и скачать в надежное место, например:
admin@mycelium1@ecss1:/$ domain/bsk.test/cdr/make_finalize_cdr bsk3 Created file(s): cdrbsk3_20220128_10_06_40_t.csv |
Выключить все ноды на сервере, который будет обновляться вторым:
sudo systemctl stop ecss-mediator.service sudo systemctl stop ecss-pa-sip.service sudo systemctl stop ecss-core.service sudo systemctl stop ecss-ds.service sudo systemctl stop ecss-mycelium.service |
Выполнить обновление:
sudo apt update |
Обновите ecss-mysql на втором хосте:
sudo apt install ecss-mysql |
Если возникла проблема с какой-либо базой данных, следует произвести перезагрузку сервиса aparmor, затем удалить базу данных из mysql, а после снова установить ecss-mysql:
sudo systemctl restart apparmor.service mysql -uroot -p<root_mysql_password> -e 'DROP DATABASE <проблемная база данных>' sudo apt install ecss-mysql |
Установить пакет ecss-node:
sudo apt install ecss-node |
В процессе установки будут задаваться вопросы о сохранении текущих версий конфигурационных файлов. Рекомендуется ставить новые, т. е. отвечать «Y». |
Во время установки пакета ecss-node система сбросит конфигурацию кластера на дефолтное значение. Поэтому потребуется отредактировать файл /etc/ecss/ecss-mycelium/mycelium1.config. Выполните команду:
Пропишите имя кластера, в примере "test_cluster":
|
Установите пакеты, содержащие основные подсистемы:
sudo apt install ecss-restfs |
sudo apt install ecss-media-server |
sudo apt install ecss-media-resources |
sudo apt install ecss-web-conf |
При установке ecss-media-server рекомендуется ответить на вопрос о конфигурировании утвердительно. |
В процессе установки будут задаваться вопросы о сохранении текущих версий конфигурационных файлов. Рекомендуется ставить новые, т. е. отвечать «Y». |
Проверьте статус сервисов командой:
systemctl is-active ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium |
Сервисы должны быть в статусе "inactive":
/systemctl is-active ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium |
После действий в предыдущем разделе можно открывать серверы друг другу, чтобы свести в кластер. На первом сервере выполните команду sudo ecss-control attach. Описание команд утилиты приведено в «Приложении Н».
Пример:
sudo ecss-control attach unlock ip: 10.10.0.2, rules: 7 complete sudo ecss-control status all nodes attached |
Запустите сервисы следующими командами:
sudo systemctl start ecss-mycelium.service |
sudo systemctl start ecss-ds.service |
sudo systemctl start ecss-core.service |
sudo systemctl start ecss-pa-sip.service |
sudo systemctl start ecss-mediator.service |
Проверьте выполнение обновления. Команда CLI system-status должна показать, что все ноды в кластере, версии подсистем одинаковые.
/system-status Checking... ┌─┬───────────────┬──────────────────────────┬───────────────────────────────┬─────────────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime│ ├─┼───────────────┼──────────────────────────┼───────────────────────────────┼─────────────────────┼──────┤ │ │core1@ecss1 │ecss-core-3.14.15.1163 │core1@ecss1,core1@ecss2 │not running │1h 5m │ │ │core1@ecss2 │ecss-core-3.14.15.1163 │core1@ecss1,core1@ecss2 │not running │3m 8s │ │ │ds1@ecss1 │ecss-ds-3.14.15.1163 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │1h 5m │ │ │ds1@ecss2 │ecss-ds-3.14.15.1163 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │59s │ │ │md1@ecss1 │ecss-mediator-3.14.15.1163│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │1h 5m │ │ │md1@ecss2 │ecss-mediator-3.14.15.1163│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │2m 53s│ │ │mycelium1@ecss1│ecss-mycelium-3.14.15.1163│mycelium1@ecss1,mycelium1@ecss2│not running │1h 5m │ │ │mycelium1@ecss2│ecss-mycelium-3.14.15.1163│mycelium1@ecss1,mycelium1@ecss2│not running │3m 17s│ │ │sip1@ecss1 │ecss-pa-sip-3.14.15.1163 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│1h 5m │ │ │sip1@ecss2 │ecss-pa-sip-3.14.15.1163 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│2m 57s│ └─┴───────────────┴──────────────────────────┴───────────────────────────────┴─────────────────────┴──────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss1 │ msr.ecss1 │ 3.14.15.221 │ connected │ 01:04:13 │ │ │ msr.ecss2 │ 3.14.15.221 │ connected │ 00:15:04 │ │ core1@ecss2 │ msr.ecss1 │ 3.14.15.221 │ connected │ 00:01:59 │ │ │ msr.ecss2 │ 3.14.15.221 │ connected │ 00:01:57 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘ |
Хост ecss2 обновлен, запустите трафик командой:
sudo systemctl start keepalived.service |
Убедитесь, что абоненты зарегистрированы. Проверьте количество зарегистрированных абонентов, оно должно быть приблизительно тем же, что и в начале обновления:
/domain/bsk.test/sip/user/registered * 320 make users list ... [**********************************************************************] 223mks 320 users information read ... [**********************************************************************] 22ms Executed on the sip1@ecss1 ┌──────────────────┬────────┬─────────┬─────────────────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────────┐ │ Interface │ Number │ Dynamic │ Contact │ Registration info │ ├──────────────────┼────────┼─────────┼─────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────┤ ... ┌───────────────┐ │ elements: 320 │ └───────────────┘ |
Вызовы проходят во всех направлениях, CFC проигрывает сообщения, Web-conf и прочие web-сервисы запускаются, в системный журнал не пишется ошибок. Команда shell:
journalctl -f |
Для удаления пакета ecss-mysql с сохранением используйте команду:
sudo apt remove ecss-mysql |
При этом базы и конфигурационные файлы не удаляются.
Для полного удаления пакета вместе с базами и конфигурационными файлами используйте ключ purge:
sudo apt purge ecss-mysql |
При этом по каждой базе нужно подтверждение удаления. После этого каталог /var/lib/ecss-mysql/ будет очищен.
Если нужно полностью удалить все пакеты mysql* :
Удаление пакетов mysql-* удалит также пакеты ecss-web-conf и ecss-restfs. |
При удалении ecss-restfs задается вопрос об удалении записей разговоров:

А также об удалении всех БД MySQL:

sudo apt purge mysql-* |
Для удаления пакета используйте команду:
sudo apt purge ecss-node |
Для удаления пакета с сохранением конфигурационных файлов используйте команду:
sudo apt remove ecss-media-server |
При этом в каталоге /etc/ecss/ecss-media-server/ остаются файлы конфигурации.
Для полного удаления используйте команду:
sudo apt purge ecss-media-server |
Для удаления остальных пакетов, которые больше не требуются, используйте ключ autoremove:
sudo apt autoremove |
Для удаления сразу нескольких пакетов можно пользоваться масками (см. man apt).
Пример команды для удаления всех пакетов ecss:
sudo apt purge ecss-* |
Для полного удаления всех компонентов ECSS выполните 3 команды:
sudo apt purge ecss-* sudo apt purge mysql-* sudo apt autoremove |
После следует перезагрузить сервер для удаления некоторых процессов из оперативной памяти.
В каталоге /var/log/ecss/security/ в служебных целях остаются логи. Их нельзя удалить штатными средствами. Если необходима очистка этого каталога, следует обратиться в техническую поддержку. |
В некоторых случаях вместо переустановки пакета требуется только изменение конфигурации. Здесь следует применять команду dpkg-reconfigure <имя_пакета>. Также при необходимости можно использовать команды пакета debconf-utils.
Описание приведено на странице «Приложение В».