IPmanager 6 — плагин для управления адресным пространством, используемый в платформах DCImanager 6 и VMmanager. С помощью модуля "Интеграция с IPmanager 6" вы можете объединить адресные пространства из нескольких экземпляров платформ.
Логика работы
При интеграции нескольких платформ одна из них является мастером. На мастере никаких настроек выполнять не требуется, на остальных платформах нужно установить модуль интеграции и указать в его настройках данные мастера.
В базу данных мастера передаётся информация обо всех сетях, пулах и блоках IP-адресов, созданных в остальных платформах. Платформы, у которых настроена интеграция, при операциях с адресным пространством используют базу данных мастера.
При интеграции не передаётся информация:
- о связи IP-адресов с выделенными серверами и виртуальными машинами (ВМ). IP-адреса, выделенные для серверов или ВМ, будут отображены в платформах со статусом "Занят" без указания имени сервера или ВМ;
- о списках DNSBL.
Чтобы избежать конфликтов при объединении адресных пространств, рекомендуем настраивать интеграцию с мастером только "чистых" платформ — без созданных ВМ и добавленных серверов.
Особенности интеграции DCImanager 6
После настройки интеграции в интерфейсах платформ отображается информация о сетях и пулах, доступных во всех локациях. Информация о сетях и пулах, доступных только в определённых локациях, будет записана в базу данных мастера, но не отобразится в интерфейсе.
Подготовка к интеграции
Создание пользователя для интеграции
Для настройки интеграции понадобятся данные первого пользователя с ролью "Администратор" на мастере. Если эти данные недоступны, подготовьте пользователя для интеграции:
- Создайте на мастере учётную запись с ролью "Администратор".
- Подключитесь к серверу с мастером по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
-
Откройте консоль базы данных:
-
если мастером является VMmanager:
В связи с поэтапным переходом платформы на использование СУБД 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.
MySQLdocker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
PostgreSQLdocker exec -it pgsql bash -c "psql -d isp"
-
если мастером является DCImanager 6:
docker exec -it mysql bash -c "mysql auth -p\$MYSQL_ROOT_PASSWORD"
-
-
Измените роль пользователя:
update auth_user set roles='["@admin"]' where email='admin@example.com';
Пояснения к команде
Удаление используемого адресного пространства
Интеграция подразумевает, что к мастеру должны подключаться платформы с пустым адресным пространством. Если в мастере и подключаемой платформе созданы одинаковые сети, после интеграции может возникнуть конфликт адресных пространств. Чтобы избежать конфликтов, удалите информацию об элементах адресного пространства из подключаемых платформ:
- Создайте резервную копию подключаемой платформы.
- Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
-
Откройте консоль базы данных:
-
если подключаемой платформой является VMmanager:
В связи с поэтапным переходом платформы на использование СУБД 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.
MySQLdocker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
PostgreSQLdocker exec -it pgsql bash -c "psql -d isp"
-
если подключаемой платформой является DCImanager 6:
docker exec -it mysql bash -c "mysql auth -p\$MYSQL_ROOT_PASSWORD"
-
-
Выполните запросы:
Удаление IP-адресовDELETE FROM ip ;
Удаление блоков IP-адресовDELETE FROM ippool_range ;
Удаление пуловDELETE FROM ippool ;
Удаление сетейDELETE FROM ipnet ;
Настройка интеграции
- На платформах, подключаемых к мастеру:
-
Установите модуль "Интеграция с IPmanager 6": → Модули → Интеграция с IPmanager 6 → Установить.
Если плагин установлен и не настроен, управление адресным пространством в платформе будет невозможным. -
Нажмите Настроить и укажите настройки подключения к мастеру:
- URL платформы. Если вы указали доменное имя сервера, убедитесь, что этому имени соответствует IP-адрес сервера с мастером. Модуль не сможет настроить подключение, если для доменного имени применяются какие-либо перенаправления. Например, через CNAME-записи DNS.
- E-mail первого пользователя с ролью "Администратор".
- Пароль пользователя.
- URL платформы. Если вы указали доменное имя сервера, убедитесь, что этому имени соответствует IP-адрес сервера с мастером. Модуль не сможет настроить подключение, если для доменного имени применяются какие-либо перенаправления. Например, через CNAME-записи DNS.
- Нажмите Применить.
-
- Если в одной из интегрируемых платформ используется модуль "Интеграция с DNSmanager 6", установите модуль с аналогичными настройками на всех остальных платформах.
Обновление модуля
Обновления для модуля не устанавливаются автоматически. Чтобы обновить модуль, в правом меню нажмите значок → Модули → Интеграция с IPmanager 6 → кнопка Обновить.
Диагностика
Информация о работе модуля сохраняется в логах докер-контейнеров:
- dci_ipmgr_1 — на сервере с DCImanager 6;
- ipmgr — на сервере с VMmanager.
Чтобы просмотреть логи:
- Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
-
Выполните команды:
docker logs <container>
docker exec -it <container> less -R /var/log/ipmgr_proxy_service.log
Пояснения к командам