База знаний VMmanager

Как перенести IP-адреса из IPmanager 6?

Для объединения адресных пространств DCImanager и VMmanager используется модуль "Интеграция с IPmanager 6". Модуль объединяет записи о физических сетях, пулах и блоках IP-адресов, но не переносит информацию о связи IP-адресов с выделенными серверами и виртуальными машинами (ВМ). В статье описано как перенести информацию об IP-адресах в платформу, исполняющую роль мастера при интеграции. 

Обратите внимание!
Перенос IP-адресов должен выполняться в "чистую" платформу — без созданных ВМ и добавленных серверов.

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

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

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

docker ps --filter name=pgsql
Пример ответа
CONTAINER ID   IMAGE         COMMAND                  CREATED      STATUS      PORTS      NAMES
3213c5dc94d0   postgres:12   "docker-entrypoint.s…"   5 days ago   Up 4 days   5432/tcp   pgsql

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

Чтобы перенести информацию об IP-адресах:

  1. Установите и настройте модуль "Интеграция с IPmanager 6" по инструкции из документации VMmanager или DCImanager.
  2. На исходном сервере:
    1. Подключитесь к серверу по SSH.
    2. Создайте дамп базы данных: 

      MySQL
      docker exec -it mysql bash -c "mysqldump <database> -p\$MYSQL_ROOT_PASSWORD ip ipnet ippool ippool_range userspace >/root/ipmgr.sql"
      PostgreSQL
      docker exec -it pgsql bash -c "pg_dump -t ip -t ipnet -t ippool -t ippool_range -t userspace <database> /root/ipmgr.sql"
      Пояснения к команде
    3. Скопируйте файл дампа в директорию /root

      docker cp mysql:/root/ipmgr.sql /root/
  3. Скопируйте файл дампа /root/ipmgr.sql на сервер с мастером в директорию /root/.
  4. На сервере с мастером:
    1. Подключитесь к серверу по SSH.
    2. Импортируйте данные из файла дампа: 

      docker cp /root/ipmgr.sql mysql:/root/
      MySQL
      docker exec -it mysql bash -c "mysql <database> -p\$MYSQL_ROOT_PASSWORD"
      PostgreSQL
      docker exec -it pgsql bash -c "psql <database> <  /root/ipmgr.sql"
      Пояснения к команде
      source /root/ipmgr.sql;
    3. Чтобы IP-адреса, сети и пулы корректно отображались в интерфейсах обеих платформ, переместите их в публичное адресное пространство:

      1. Определите id публичного пространства: 

        select id from userspace where is_public=1;
        Пример ответа
        +----+
        | id |
        +----+
        |  1 |
        +----+
      2. Переместите объекты в публичное пространство:

        update ip set userspace=<public_id>;
        update ippool set userspace=<public_id>;
        update ipnet set userspace=<public_id>;
        Пояснения к команде