Чек-лист по установке ECSS-10
Шаг | Пункт документации | Результат | Примечание |
---|---|---|---|
1. Проверка соответствия аппаратных требований к системе | |||
1.1 Установлены актуальные версии ПО внутренних устройств и контроллеров сервера (BIOS, RAID, iDRAC, iLO и т.д.) | См. документацию к используемому серверу | ||
1.2 Наличие в системе по меньшей мере двухъядерного CPU | Разработка проекта системы | Определяется проектом на систему | |
1.3 Наличие в системе по меньшей мере 8 ГБ RAM | Разработка проекта системы | Определяется проектом в зависимости от требуемой нагрузки. В тестовых целях допускается уменьшение до 4 ГБ | |
1.4 Имеется достаточно дискового пространства | Создание разделов диска | ||
1.5 Произведена верная разметка разделов | Создание разделов диска | ||
1.6 В системе НЕ используется файл подкачки SWAP | |||
2. Проверка соответствия программных требований к системе | |||
2.1 Установлена корректная версия и разрядность операционной системы (Ubuntu Server 18.04.x LTS 64bit) | Ubuntu Server 18.04 x64 | ||
2.2 Выставлено корректное имя хоста hostname: ecss1 или ecss2 | При использовании резервирования | ||
2.3 В системе установлены актуальные обновления | |||
2.4 В системе установлено рекомендуемое ПО | |||
2.5 В системе добавлен репозиторий ECSS-10 и имеется доступ к нему | Обновление системы | ||
2.6 В системе корректно настроены сетевые интерфейсы: | |||
- адреса сетевых интерфейсов статичны, не изменяются динамически по 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) | |||
- Проверка ключа eToken/RuToken | Проверка работы Token | ||
2.8 Проверка сетевой доступности между хостами ecss1 и ecss2: | При использовании резервирования | ||
- задержка ping между хостами не превышает 100 мс | Необходимо минимизировать задержки трафика между хостами, насколько это возможно | ||
- отсутствуют потери пакетов при обмене данными между хостами | Запускается команда 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 рекомендуемой версии: | Настройка RestFS | Не ниже версии ПО 3.13.2 | |
3. Проверка корректности установки ECSS-10 | |||
3.1 Установка пакетов компонентов системы завершилась успешно без ошибок: | dpkg -l | grep ecss | ||
- ecss-mysql | |||
- ecss-node | |||
- ecss-media-resources | Установка ecss-media-resources | ||
- ecss-media-server | |||
- ecss-restfs | |||
- ecss-user | |||
- ecss-web-conf | |||
- ecss-dns-env | DNS | ||
- дополнительные необязательные пакеты в соответствии с проектом | Установка дополнительных пакетов | ||
4. Проверка работоспособности системы ECSS-10 | |||
4.1 Проверка установленной лицензии ECSS-10: | Запуск и активация системы | ||
- сервис pcscd находится в работе | Установка ПО и подключение Token | pkcs11-tool --module $(find /usr/lib/ecss/ecss-ds/lib/ -name librtpkcs11ecp.so | head -n1) -L | |
- в системе установлен корректный паспорт | Запуск и активация системы | 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-имени | 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 system.restfs.ecss | |
4.3 На хостах ecss1 и ecss2 прописаны listen-интерфейсы для сервиса epmd | Настройка listen-интерфейса для сервиса epmd | sudo systemctl cat epmd.service | |
4.4 Сервер БД MySQL запущен и работает: | sudo systemctl status mysql.service | ||
- к MySQL серверу возможно подключиться по DNS-имени | mysql -uroot -p -h ecss1 | ||
- при использовании резерва запущенна и корректно работает репликация БД | Схема развертывания 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> Также и с ключом is-active: sasha@ecss1:~$ systemctl is-active ecss-core ecss-ds ecss-pa-sip ecss-mycelium ecss-pa-megaco ecss-media-server ecss-web-conf ecss-restfs active active active active inactive active active active | |
- Команда cocon "system-status" выдает пустой Alarms list | |||
4.7 Медиасервер MSR настроен и подключен к ECSS-10: | Настройка программного медиасервера | ||
- конфигурация MSR настроена на подключение к ECSS-10 | Настройка конфигурационного файла MSR | Из shell-серверов: cat /etc/ecss/ecss-media-server/config.xml | |
- MSR задекларирован в системных медиаресурсах | Команды управления медиаресурсами | CoСon: /system/media/resource/list /system/media/registrar/info Если система с резервированием, проверить, что подключен к обоим ядрам. | |
- На хосте 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 (преобразование текста в голосовое сообщение) настроен и работает: | Если выбран tts при установке ecss-restfs | ||
- Сервис возвращает голосовой файл после преобразования из текста | Из 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 где: | ||
4.10 Настроены пользователи, их права и роли | cocon/list users | ||
4.11 Настроены правила ограничения обслуживания абонентов | Тип доступа, режим обслуживания, категория доступа и барринги | ||
5. Проверка корректности настройки домена в ECSS-10 | |||
5.1 В домене настроен SIP-транспорт (ip-set) | |||
- Адреса (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> | |
- настроена система сбора CDR (при необходимости) | Управление системой сбора CDR | ||
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 |