Установка сервиса топологии

Подготовка к установке#

Важная информация по процессу установки:

  • На виртуальной машине, на которую устанавливается сервис топологии, не должен быть установлен Визион.
  • Пользователь обладает правами root.
  • После запуска сервиса требуется порядка 5-10 минут, прежде чем в графическом интерфейсе станут отображаться данные.
  • На первом этапе сервис запускается на искусственных данных (не требуется интеграция с внешними системами или устройствами) для того, чтобы убедиться в корректной работе самого сервиса. На втором этапе сервис переводится на использование реальных данных.
  • <topology_service_distrib>.tar.gz — архив с дистрибутивом сервиса.
  • <topology_service_ip> — IP-адрес хоста, на котором устанавливается сервис.
  • Установка пакетов с зависимостями поддерживается только из репозиториев ОС.
  • Для установки пакетов зависимостей из репозитория дистрибутива (offline-установка пакетов) применяется отдельный скрипт alter_repo.sh (см. шаг “Загрузка и инициализация локального репозитория с пакетами”).

Распаковка дистрибутива#

  1. Загрузите архив с дистрибутивом сервиса и распакуйте его:

    tar -xzf <topology_service_distrib>.tar.gz
    
  2. Перейдите в директорию с распакованным файлами:

    cd <topology_service_distrib>
    

Загрузка и инициализация локального репозитория с пакетами#

Обратите внимание, что выполнение этого шага требуется только при недоступности на хосте сетевых репозиториев и рассчитано на запуск только на Альт 8 СП Сервер 10.2 (c10f2). Также после завершения работы с setup.sh (шаг “Установка необходимых зависимостей и запуск установки”) нужно выполнить команду ./alter_repo.sh -r для восстановления исходной конфигурации репозиториев.

Загрузите архив с пакетами <topology_service_packages>.tgz и запустите скрипт конфигурации репозитория:

./alter_repo.sh -i <topology_service_packages>.tgz

Установка зависимостей и запуск установки#

  1. Запустите скрипт ./setup.sh.
  2. Выберите опцию “Установить пакеты зависимостей из репозитория OC” (выполняется однократно).
  3. После успешной установки зависимостей выберите “Установить сервер Foliage”.

Если на шаге “Загрузка и инициализация локального репозитория с пакетами” запускался скрипт ./alter_repo.sh -i, то необходимо выполнить команду ./alter_repo.sh -r.

Базовый тест работоспособности интерфейса пользователя#

Через 5-10 минут после завершения установки необходимо убедиться в наличии объектов на экранах топологии https://<topology_service_ip>/?view=hss&id=МБДП-001. Экраны (вкладки) не должны быть пустыми, между элементами на каждом экране должны отображаться связи.

Проверка запущенных сервисов#

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

cd /opt/skala-r/foliage && ./check_services.sh

Ожидается, что все сервисы (актуальный список хранится в services.list) находятся в статусе active.

Тестовая установка агента сервиса топологии (foliage_agent) локально и базовый интеграционный тест#

Для установки агента:

  1. Перейдите в директорию /opt/skala-r/foliage/maintenance/foliage_agent:

    cd /opt/skala-r/foliage/maintenance/foliage_agent
    
  2. В файле foliage_agent_settings.yml измените значение переменной foliage_agent_nats_host с localhost на внешний IP-адрес текущего хоста (<topology_service_ip).

  3. Запустите плейбук:

    ansible-playbook -i sample_inventory.yml install.yml
    

После установки необходимо убедиться в работоспособности агента командой systemctl status foliage_agent и передачи минимальных данных (ip и hostname) в CMDB (ниже <topology_service_ip>_shsi это ID вершины, сгенерированный на базе IP-адреса текущего хоста).

Ошибки вида “level=error msg=“Команда ‘pcs status xml’ завершилась с ошибкой” допустимы, т. к. консольная команда pcs доступна только на хостах, где развернут кластер corosync.

Информация в CMDB имеет вид графа, вершинами которого являются объекты.

Для проверки наличия информации о иерархии объектов выполните команду:

./foliage_cli_routes.sh scala_connectors_server-from-ip

Пример вывода команды:

scala_connectors_server-from-ip
└── [depth=1]  OUT
    ...
    ├── [hss/<topology_service_ip>_shsi]  hss/<topology_service_ip>_shsi
    ...
    ├── [hss/scala_connectors_server-command-output]  hss/scala_connectors_server-command-output
    ...

Для получения информации о вершине выполните команду:

./foliage_cli_inspect.sh <topology_service_ip>_shsi

Пример вывода команды:

...
Body {
    ...
    "hostname": "vision-ifedulov-monitoring-target",
    "ip": "192.168.191.188"
}

Убедитесь, что минимальная информация с запущенного foliage_agent стала доступна в интерфейсе пользователя. Сервер и его IP-адрес должны быть видны в левой колонке на экране ПАК (связь с элементами в средней колонке Services не должна отображаться). При переходе на экран “Детальный вид” отображаются данные на панелях “Hardware subsystem > RAM”, “Network subsystem > BMC”. При переходе на экран “Подсистема хранения” показываются данные в колонках Partitions и Disks.

Перевод экземпляра сервиса топологии на реальные данные#

Перевод осуществляется через остановку всех компонентов, очистку jetstream, изменение конфигурационных файлов и повторный запуск сервисов.

Перед внесением правок в конфигурационные файлы, необходимо выполнить предусловия и подготовить следующую информацию:

  • В Визионе заполнена обьектная модель ПАКа (серверы, коммутаторы и др.).

  • Адрес Визиона <vision_api> (например, https://192.168.191.61).

  • Ключ авторизации Визиона <vision_bearer_token>.

    Для создания ключа авторизации пользователю должна быть назначена роль vsn_config.

    Для создания ключа перейдите на страницу <vision_api>/vision/security/tokens.

    Обратите внимание, что это не должен быть идентификатор токена (UUID). Длина токена составляет около 200 символов. Существующий токен нельзя скопировать — нужно или создать новый, или перегенерировать существующий. Для выполнения обеих операций используйте кнопку Сгенерировать.

  • Идентификатор ПАК (<pak_id>), для которого поднят текущий инстанс сервиса топологии (например, pl-mbd2).

  • Список серверов ПАК, на которых будет устанавливаться foliage_agent, чтобы отправлять данные в CMDB сервиса топологии.

  • Инвентори файл <pak_inventory_file> для установки агентов сервиса топологии.

  • Данные о сетях и физическом размещении устройств ПАК (стойки, серверы, коммутаторы и др.). См. инструкцию по заполнению .

Все действия выполняйте в директории с установленным сервисом топологии (/opt/skala-r/foliage).

  1. Остановите сервисы:

    ./manage_services.sh stop
    
  2. Очистите хранилище jetstream:

    ./drop_jetstream_storage.sh
    
  3. В конфигурационном файле deploy_settings.yml задайте значения следующих параметров:

    • pak_id: идентификатор ПАК.
    • vision_api: адрес Визиона.
    • vision_bearer_token: ключ авторизации Визиона.
    • snmp_port: 161.

    Пример заполнения:

    pak_id: pl-mbd2
    vision_api: https://192.168.191.61
    vision_bearer_token: a9238912******23198d9sdj
    snmp_port: 161
    
  4. Преобразуйте файл deploy_settings.yml в формат ENV:

    ansible-playbook convert_deploy_settings.yml
    

    Эту операцию нужно выполнять при любых изменениях в файле deploy_settings.yml.

  5. Измените конфигурационные файлы для сетей и физического размещения устройств ПАК:

    • configs/common/nmrd/networks.json;
    • configs/common/nmrd/virtual_location.json.
  6. Запустите плейбук обновления конфигурационных файлов:

    ansible-playbook disable_dumps.yml
    
  7. Установите агенты на серверы ПАК:

    cd maintenance/foliage_agent && ansible-playbook -i "<pak_inventory_file>" install.yml
    
  8. Последовательно запустите сервисы:

    systemctl start nats_server && sleep 5s && systemctl start main && sleep 5s && ./manage_services.sh start
    

После перевода на реальные данные адрес в UI изменится (на примере pak_id: pl-mbd2):

https://<topology_service_ip>/?view=hss&id=<pak_id>.