ШагПункт документацииРезультатПримечание
1. Проверка соответствия аппаратных требований к системе


1.1 Установлены актуальные версии ПО внутренних устройств и контроллеров сервера (BIOS, RAID, iDRAC, iLO и т.д.)

См. документацию к используемому серверу
1.2 Наличие в системе по меньшей мере 2-х ядерного CPU

Определяется проектом на систему
1.3 Наличие в системе по меньшей мере 8 Гб RAM

Определяется проектом в зависимости от требуемой нагрузки. В тестовых целях допускается уменьшение до 4 Гб
1.4 Имеется достаточно дискового пространстваИнсталляция операционной системы

1.5 Произведена верная разметка разделовИнсталляция операционной системы

1.6 В системе НЕ используется файл подкачки SWAPИнсталляция операционной системы

2. Проверка соответствия программных требований к системе


2.1 Установлена корректная версия и разрядность операционной системы

Ubuntu Server 18.04 x64
2.2 Выставлено корректное имя хоста hostname: ecss1 или ecss2Инсталляция операционной системы
При использовании резервирования
2.3 В системе установлены актуальные обновленияОбновление ОС и инсталляция необходимого ПО

2.4 В системе установлено рекомендуемое ПООбновление ОС и инсталляция необходимого ПО

2.5 В системе добавлен репозиторий ECSS-10 и имеется доступ к немуОбновление ОС и инсталляция необходимого ПО

2.6 В системе корректно настроены сетевые интерфейсыНастройка сетевых интерфейсов, bonding, VRRP

- адреса сетевых интерфейсов статичны, не изменяются динамически по DHCP


- сервис keepalived (VRRP) настроен и работает

При использовании резервирования
- как минимум на интерфейсах Lo включена поддержка IPv6

Пример:

ssw@ecss1:~$ ip -6 addr show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2.7 Ключ eToken/RuToken подключен к USB-порту сервераПроверка работы Token

- Ключ eToken/RuToken определился в системе (lsusb)

Проверка работы Token



- Проверка ключа eToken/RuTokenПроверка работы Token

2.8 Проверка сетевой доступности между хостами ecss1 и ecss2

При использовании резервирования
- задержка ping между хостами не превышает 100 ms

Необходимо минимизировать задержки трафика между хостами на сколько это возможно
- отсутствуют потери пакетов при обмене данными между хостами

Запускается команда ping на несколько минут, после чего снимается статистика комбинацией клавиш

CTRL+|

Пример:

ssw@ecss1:~$ ping -q -c 200 ecss2
PING ecss2 (192.168.1.22) 56(84) bytes of data.
177/177 packets, 0% loss, min/avg/ewma/max = 0.062/0.131/0.117/0.489 ms
- хосты доступны между собой по DNS имени (как прописано в /etc/hosts/ и в соответствии с лицензией)

Проверяется ping c ecss1 на ecss2 и наоборот
- между хостами настроена авторизация по ключам

Сгенерировать ssh-ключ и передать на другой сервер

ssh-keygen
ssh-copy-id ssw@ecss2


Аналогично с ecss2 на ecss1

2.9 На сервере работает синхронизация времени c NTP серверомСинхронизация времени на серверах

Проверить статус:

ntpq -p
- выставлен корректный часовой пояс

Просмотреть:

date +%Z
- на хостах ecss1 и ecss2 настроена синхронизация времени в режиме orphan либо синхронизация с единого NTPСинхронизация времени на серверах
При использовании резервирования
2.10. Установлен glusterfs-server рекомендуемой версии

Не ниже версии ПО 3.10.11
3. Проверка корректности установки ECSS-10


3.1 Установка пакетов компонентов системы завершилась успешно без ошибок:Установка пакетов ECSS
dpkg -l | grep ecss
- ecss-node



- ecss-media-resources



- ecss-media-server



- ecss-mysql


- ecss-restfs



- ecss-cc-ui


При использовании APM CC
- ecss-user



- ecss-web-conf



- ecss-dns-env



4. Проверка работоспособности системы ECSS-10


4.1 Проверка установленной лицензии ECSS-10:Запуск и активация системы

- сервис SACSrv находится в работеУстановка ПО и подключение Token
ps aux | grep SACSrv | grep -v grep
- сервис pcscd находится в работеУстановка ПО и подключение Token
ps aux | grep pcscd | grep -v grep
- в системе установлен корректный паспортЗапуск и активация системы

CoCon команда

/cluster/storage/ds1/licence/show-passport
- в системе установлена актуальная лицензияЗапуск и активация системы

CoCon команда

/cluster/storage/ds1/licence/current-limits
4.2 Сервис dnsmasq запущен и работает


- если система с резервом, в конфигурации dnsmasq прописаны корректные адреса primary.broker.ecss и secondary.broker.ecssОсобенности установки системы в кластере

Обратить внимание, что на обоих серверах содержимое одинаковое.

address=/primary.broker.ecss/<Адрес ecss1>
address=/secondary.broker.ecss/<Адрес ecss2>
- адреса доступны по DNS-имени

ping -c1 cocon.mysql.ecss
ping -c1 dialer.mysql.ecss
ping -c1 statistics.mysql.ecss
ping -c1 tc.mysql.ecss
ping -c1 tts.mysql.ecss
ping -c1 controlchannel.zmq.ecss
ping -c1 system.restfs.ecss
4.3 На хостах ecss1 и ecss2 прописаны listen-интерфейсы для сервиса epmdНастройка listen-интерфейса для сервиса epmd
sudo systemctl cat epmd.service
4.4 Сервер БД MySQL запущен и работает


- к MySQL серверу возможно подключиться по DNS ecss-cc-ui имени

mysql -uroot -p -h ecss2
- при использовании резерва запущенна и корректно работает репликация БДСхема развертывания MySQL master-master replication с использованием keepalive
mysql -uroot -p -e 'show slave status \G;'

На обоих серверах

             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
- порт mysql должен слушать на 0.0.0.0.

netstat -nl | grep 3306
4.5 В системе с резервом прописано имя кластера(не undefined)Особенности установки системы в кластере
cat /etc/ecss/ecss-mycelium/mycelium1.config | grep name
4.6 Сервисы ecss запущенны и работают (находятся в состоянии running):Проверка статуса сервисов
systemctl list-units --type service --all | grep ecss

Состояние должно показывать "active"
Или по каждому сервису отдельно:

systemctl status <service name>
- ecss-mycelium


- ecss-ds


- ecss-core


- ecss-pa-sip


- ecss-pa-megaco


- ecss-mediator


- ecss-media-server


- ecss-web-conf


- ecss-restfs


- ecss-subscriber-portal


- ecss-cc-ui


- Команда cocon "system-status" выдает пустой Alarms list


4.7 Медиасервер MSR настроен и подключен к ECSS-10:Настройка программного медиасервера

- конфигурация MSR настроена на подключение к ECSS-10Настройка конфигурационного файла MSR

Из shell серверов:

cat /etc/ecss/ecss-media-server/config.xml
- MSR задекларирован в системных медиаресурсахКоманды управления медиаресурсами

Cocon:

/system/media/resource/list  
/system/media/registrar/info

Если система с резервированием, проверить, что подключен к обоим ядрах
Обратить внимание на правильные адреса ядер (не 0.0.0.0)

- На хосте ecss2 аналогичным образом сконфигурирован MSR

При использовании резервирования
4.8 Restfs настроен и доступен с сервера ECSS-10:


- restfs доступен для записи и скачивания медиафайлов

Из shell серверов:

wget http://ecss1:9990/system/sounds/ai_you.wav
wget http://ecss2:9990/system/sounds/ai_you.wav
4.9 Сервис TTS (преобразование текста в голосовое сообщение) настроен и работает:


- Сервис возвращает голосовой файл после преобразования из текста

Из shell серверов:

wget http://ecss1:9990/generate?key=<Key>&text=<Text>&format=wav&lang=ru-RU&speaker=alyss&emotion=good&quality=hi
wget http://ecss2:9990/generate?key=<Key>&text=<Text>&format=wav&lang=ru-RU&speaker=alyss&emotion=good&quality=hi

где:
key=<Key>  - ключ для доступа к серверу tts
text=<Text>  - текстовое сообщение для преобразования в голосовое сообщение

5. Проверка корректности настройки домена в ECSS-10


5.1 В домене настроен SIP-транспорт (ip-set)

Работа SIP-адаптера с сетью



- Адреса(node_ip) и порты(listen_port) выставлены в соответствии с проектом

/cluster/adapter/sip1/sip/network/info 
- Адреса node_ip назначены на обеих нодах SIP-адаптера ecss1 и ecss2

При использовании резервирования
- Адреса node_ip совпадают с адресами резервируемых интерфейсов, настроенных в keepalived

При использовании резервирования
- На домене выставлен ipset

/domain/<DOMAIN>/sip/network/info
5.2 В домен добавлены необходимые услугиИнсталляция и управление услугами

- произведена установка в систему услугИнсталляция и управление услугами
cluster/storage/ds1/ss/install ds1@ecss1 *
- домен добавлен в access-list к услугамИнсталляция и управление услугами

Просмотреть установленные в доменах услуги:

/cluster/storage/ds1/ss/access-list show

Для добавления услуг на домене:

/cluster/storage/ds1/ss/access-list add <DOMAIN> <SS>
5.3 Произведена настройка контекста маршрутизацииВиртуальная АТС. Маршрутизация телефонных вызовов
/domain/<DOMAIN>/routing/list
/domain/<DOMAIN>/routing/show <CTX>
- настроены нужные транкиКоманды управления SIP-транками

При необходимости.

/domain/<DOMAIN>/trunk/sip/info
/domain/<DOMAIN>/trunk/info
- настроены нужные бриджиКоманды управления bridge-интерфейсами

При необходимости.

/bridge/info
- маршруты отрабатываются как в режиме набора enblock, так и overlap

Команды управления маршрутизацией


/domain/<DOMAIN>/routing/trace
5.4 Произведены корректные настройки SIP-абонента(-ов)Виртуальная АТС. Подключение и настройка SIP-абонентов

- абоненты созданыСоздание SIP-абонента
domain/<DOMAIN>/sip/user/list
- установлены надежные логин/пароль SIP-авторизации

domain/<DOMAIN>/sip/user/info * *

или отфильтровать (из shell)

ssh admin@ecss1 -p8023 '/domain/<DOMAIN>/sip/user/info * *' | grep '(ds)'
- установлен trusted ipАутентификация абонентов

в случае необходимости SIP-регистрации без авторизации

domain/<DOMAIN>/sip/user/info
- у абонента установлен корректный контекст маршрутизацииДобавление абонента
domain/<DOMAIN>/sip/user/info

или

cluster/storage/ds1/iface/list <DOMAIN> * <GROUP> routing_context ~ ctx_from_local

(подставить нужный)

- выставлен корректный тип терминала (basic/smart)Настройка параметров абонента
/cluster/storage/ds1/iface/list <DOMAIN> * <GROUP> terminal_type ~ smart

(или basic)

- у абонента активированы необходимые услугиИнсталляция и управление услугами
/domain/<DOMAIN>/ss/info
5.5 Установка контекстов маршрутизации для системных интерфейсовКоманды управления системными интерфейсами
/domain/<DOMAIN>/iface/user-set .system .system system:ivr routing.context

- настроен system:ivrКоманды управления системными интерфейсами

При необходимости использования сервиса IVR. В большинстве случаев прописывается только контекст маршрутизации

/domain/<DOMAIN>/iface/info .system .system system:ivr
- настроен system:teleconferenceКоманды управления системными интерфейсами

При необходимости использования сервиса teleconference. В большинстве случаев прописывается только контекст маршрутизации

/domain/<DOMAIN>/iface/info .system .system system:teleconference