Вы можете импортировать оборудование в платформу с помощью скрипта миграции. Подробнее о миграции см. в статье Миграция с DCImanager 5 в DCImanager 6.

Импорт состоит из следующих этапов:

  1. Подготовка файла в формате JSON с описанием оборудования.
  2. Подготовка конфигурационного файла для скрипта миграции.
  3. Запуск скрипта в режиме импорта.

Порядок импорта


  1. Подключитесь к серверу с DCImanager 6 по SSH с правами суперпользователя.
  2. Зайдите в контейнер migrator: 

    docker exec -it migrator bash
    BASH
  3. Перейдите в директорию сервиса миграции: 

    cd /opt/ispsystem/migrate
    BASH
  4. Чтобы импортировать серверы, создайте файл /opt/ispsystem/migrate/server.json следующего формата:

    Пример файла

    [
       {
          "name":"Server 1",
          "platform":"Platform 1",
          "configuration":"i9-9900K-64Gb-1024NVMe-2048NVMe",
          "mac":"AA:BB:CC:DD:EE:FF",
          "owner":"admin@example.com",
          "blocked":false,
          "installed_os":"",
          "note":"Some comment",
          "rack": "Rack 1",
          "unit":1,
          "chassis": null, 
          "slot": null  
       },
       {
          "name:"Server 2",
          ...
    ]
    YML

    name — имя сервера

    platform — название платформы в DCImanager 6

    configuration — конфигурация сервера. Может быть пустой строкой

    mac — MAC-адрес сервера. Может быть пустой строкой

    owner — e-mail пользователя DCImanager 6 — владельца сервера. Может быть пустой строкой

    blocked — отметить сервер как заблокированный. Подробнее см. в статье Блокировка сервера. Возможные значения: true — блокировать, false — не блокировать

    installed_os — произвольное название ОС, установленной на сервере

    note — произвольный комментарий

    rack — имя стойки в DCImanager 6. Для блейд-сервера укажите значение null

    unit — номер юнита в стойке. Для блейд-сервера укажите значение null

    chassis — имя шасси. Если это не блейд-сервер, укажите значение null

    slot — номер слота в шасси. Если это не блейд-сервер, укажите значение null

  5. Чтобы импортировать коммутаторы, создайте файл /opt/ispsystem/migrate/switch.json следующего формата:

    Пример файла

    [  
      {  
        "name": "Switch 1",
        "device": "arista_eapi",
        "ip": "192.0.2.100",
        "rack": "Rack 1",
        "unit": 1, 
        "size": 1, 
        "note": "Some comment", 
        "couple_switch": null,
        "snmp_params": null, 
        "netconf_params": null, 
        "telnet_params": null,  
        "nxapi_params": null,  
        "eapi_params": {"password": "secret", "username": "admin"}
      },
      {
        "name:"Switch 2",
          ... 
    ]
    YML

    name — имя коммутатора

    device — внутреннее имя обработчика

    ip — IP-адрес коммутатора

    rack — имя стойки в DCImanager 6

    size — размер коммутатора в слотах стойки. Минимальное значение — 0

    note — произвольный комментарий

    couple_switch — имя парного коммутатора. Если вы создадите VLAN на добавляемом коммутаторе, то они автоматически будут созданы на парном. Если парного коммутатора нет, укажите значение null

    snmp_params — параметры подключения по SNMP. Если коммутатор использует другой протокол, укажите значение null

    netconf_params — параметры подключения по Netconf. Если коммутатор использует другой протокол, укажите значение null

    telnet_params — параметры подключения по SSH. Если коммутатор использует другой протокол, укажите значение null

    nxapi_params — параметры подключения по NxAPI. Если коммутатор использует другой протокол, укажите значение null 

    eapi_params  — параметры подключения по eAPI. Если коммутатор использует другой протокол, укажите значение null 

    Чтобы получить внутреннее имя обработчика, откройте интерфейс Swagger → раздел Equipment service → выполните GET-запрос supported_switch. Ответ на запрос будет содержать имена обработчиков в параметре handler. Подробнее об обработчиках коммутаторов см. в статье Поддерживаемые устройства.

    Чтобы получить параметры подключения коммутатора, откройте интерфейс Swagger → раздел DCI Back → скопируйте нужные данные из параметра POST-запроса switch. Например, для eapi_params нужно указать:

      "eapi_params": {
        "password": "<пароль>",
        "username": "<имя пользователя>"
      }
    YML

    Для telnet_params используйте данные из ssh_params:

     "ssh_params": {
        "password": "<пароль>",
        "port": <порт>,
        "user": "<имя пользователя>"
      }
    YML
  6. Создайте конфигурационный файл для миграции import_settings.yaml:

    action: import
    platform: dci6
    data:
      - server
      - switch
    transport:
      - type: dci6_http
      - type: dci6_auth_http
    location: 1  
    format: json
    debug: false
    log_file: /var/log/migrate.log
    report_file: import_report_{datetime}.txt
    report_view: plain
    YML
    1. Укажите id локации в параметре location.

    2. Если вы не планируете импортировать серверы, удалите из файла строку "- server".

    3. Если вы не планируете импортировать коммутаторы, удалите из файла строку "- switch".

  7. Запустите скрипт для импорта данных: 

    python3 migrator.py -p import_settings.yaml
    BASH

Диагностика


Логи миграции записываются в файл /var/log/migrate.log в контейнере migrator на сервере с DCImanager 6. Отчёт по миграции сохраняется в файл, указанный в параметре report_file конфигурационного файла миграции.