IPmanager 6 — плагин для управления адресным пространством, используемый в платформах DCImanager 6 и VMmanager. С помощью модуля "Интеграция с IPmanager 6" вы можете объединить адресные пространства из нескольких экземпляров платформ.

Логика работы


При интеграции нескольких платформ одна из них является мастером. На мастере никаких настроек выполнять не требуется, на остальных платформах нужно установить модуль интеграции и указать в его настройках данные мастера.

В базу данных мастера передаётся информация обо всех сетях, пулах и блоках IP-адресов, созданных в остальных платформах. Платформы, у которых настроена интеграция, при операциях с адресным пространством используют базу данных мастера.

Информация, переданная в базу данных мастера, удаляется из локальной базы данных платформы. При удалении модуля нужно будет заново добавить необходимые сети, пулы и блоки IP-адресов.

При интеграции не передаётся информация:

  • о связи IP-адресов с выделенными серверами и виртуальными машинами (ВМ). IP-адреса, выделенные для серверов или ВМ, будут отображены в платформах со статусом "Занят" без указания имени сервера или ВМ;
  • о списках DNSBL.

Чтобы избежать конфликтов при объединении адресных пространств, рекомендуем настраивать интеграцию с мастером только "чистых" платформ — без созданных ВМ и добавленных серверов.

Особенности интеграции DCImanager 6

После настройки интеграции в интерфейсах платформ отображается информация о сетях и пулах, доступных во всех локациях. Информация о сетях и пулах, доступных только в определённых локациях, будет записана в базу данных мастера, но не отобразится в интерфейсе.

Подготовка к интеграции


Создание пользователя для интеграции

Для настройки интеграции понадобятся данные первого пользователя с ролью "Администратор" на мастере. Если эти данные недоступны, подготовьте пользователя для интеграции:

  1. Создайте на мастере учётную запись с ролью "Администратор".
  2. Подключитесь к серверу с мастером по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  3. Откройте консоль базы данных:

    • если мастером является VMmanager:

      В связи с поэтапным переходом платформы на использование СУБД PostgreSQL, разные экземпляры VMmanager могут использовать разные СУБД:

      • VMmanager Hosting — MySQL;
      • VMmanager Infrastructure:
        • для новых установок на ОС Astra Linux, начиная с версии VMmanager 2023.06.1 — PostgreSQL;
        • в остальных случаях — MySQL.

      Чтобы определить тип СУБД, выполните на сервере с платформой команду: 

      docker ps --filter name=pgsql
      BASH

      Пример ответа

      CONTAINER ID   IMAGE         COMMAND                  CREATED      STATUS      PORTS      NAMES
      3213c5dc94d0   postgres:12   "docker-entrypoint.s…"   5 days ago   Up 4 days   5432/tcp   pgsql
      CODE

      Если вывод команды содержит информацию о контейнере, платформа использует PostgreSQL, если ответ пустой — MySQL.

      MySQL

      docker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
      CODE

      PostgreSQL

      docker exec -it pgsql bash -c "psql -d isp"
      CODE
    • если мастером является DCImanager 6: 

      docker exec -it mysql bash -c "mysql auth -p\$MYSQL_ROOT_PASSWORD"
      CODE
  4. Измените роль пользователя: 

    update auth_user set roles='["@admin"]' where email='admin@example.com';
    CODE

    admin@example.com — email созданной учётной записи

Удаление используемого адресного пространства

Интеграция подразумевает, что к мастеру должны подключаться платформы с пустым адресным пространством. Если в мастере и подключаемой платформе созданы одинаковые сети, после интеграции может возникнуть конфликт адресных пространств. Чтобы избежать конфликтов, удалите информацию об элементах адресного пространства из подключаемых платформ:

  1. Создайте резервную копию подключаемой платформы.
  2. Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  3. Откройте консоль базы данных:

    • если подключаемой платформой является VMmanager:

      В связи с поэтапным переходом платформы на использование СУБД PostgreSQL, разные экземпляры VMmanager могут использовать разные СУБД:

      • VMmanager Hosting — MySQL;
      • VMmanager Infrastructure:
        • для новых установок на ОС Astra Linux, начиная с версии VMmanager 2023.06.1 — PostgreSQL;
        • в остальных случаях — MySQL.

      Чтобы определить тип СУБД, выполните на сервере с платформой команду: 

      docker ps --filter name=pgsql
      BASH

      Пример ответа

      CONTAINER ID   IMAGE         COMMAND                  CREATED      STATUS      PORTS      NAMES
      3213c5dc94d0   postgres:12   "docker-entrypoint.s…"   5 days ago   Up 4 days   5432/tcp   pgsql
      CODE

      Если вывод команды содержит информацию о контейнере, платформа использует PostgreSQL, если ответ пустой — MySQL.

      MySQL

      docker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
      CODE

      PostgreSQL

      docker exec -it pgsql bash -c "psql -d isp"
      CODE
    • если подключаемой платформой является DCImanager 6: 

      docker exec -it mysql bash -c "mysql auth -p\$MYSQL_ROOT_PASSWORD"
      CODE
  4. Выполните запросы: 

    Удаление IP-адресов

    DELETE FROM ip ;
    SQL

    Удаление блоков IP-адресов

    DELETE FROM ippool_range ;
    SQL

    Удаление пулов

    DELETE FROM ippool ;
    SQL

    Удаление сетей

    DELETE FROM ipnet ;
    SQL

Настройка интеграции


Не устанавливайте и не настраивайте модуль на мастере. Это приведёт к удалению адресного пространства.

  1. На платформах, подключаемых к мастеру:
    1. Установите модуль "Интеграция с IPmanager 6": МодулиИнтеграция с IPmanager 6Установить.

      Если плагин установлен и не настроен, управление адресным пространством в платформе будет невозможным.

    2. Нажмите Настроить и укажите настройки подключения к мастеру:

      1. URL платформы. Если вы указали доменное имя сервера, убедитесь, что этому имени соответствует IP-адрес сервера с мастером. Модуль не сможет настроить подключение, если для доменного имени применяются какие-либо перенаправления. Например, через CNAME-записи DNS.

      2. E-mail первого пользователя с ролью "Администратор".

      3. Пароль пользователя.

    3. Нажмите Применить.

  2. Если в одной из интегрируемых платформ используется модуль "Интеграция с DNSmanager 6", установите модуль с аналогичными настройками на всех остальных платформах.

Обновление модуля


Обновления для модуля не устанавливаются автоматически. Чтобы обновить модуль, в правом меню нажмите значок МодулиИнтеграция с IPmanager 6 → кнопка Обновить.

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

Диагностика


Информация о работе модуля сохраняется в логах докер-контейнеров:

  • dci_ipmgr_1 — на сервере с DCImanager 6;
  • ipmgr — на сервере с VMmanager.

Чтобы просмотреть логи:

  1. Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Выполните команды:

    docker logs <container>
    CODE
    docker exec -it <container> less -R /var/log/ipmgr_proxy_service.log
    CODE

    <container> — имя контейнера