При смене поставщика IPAM, необходимо оперативно интегрировать новый IPAM с остальными информационными системами. Основные клиенты, работающие у нас с IPAM, – это частное облако на vRealize Automation и система автоматизации процессов vRealize Orchestrator. В данной статье описана реализация плагина vRA 8 для phpIPAM.
Существует готовый плагин для интеграции vRA 8 с phpIPAM, однако, его возможностей недостаточно для использования в продуктивной среде, требуется дополнительная реализация нескольких ключевых функций. Анализ исходного кода показал, что проще и быстрее переписать весь плагин “с нуля”.
- Плагин создан в соответствии с документацией по разработке пакетов интеграции Creating and Deploying a Provider-specific IPAM Integration Package for VMware vRealize Automation;
- За основу взят набор инструментов для разработки пакета VMware vRealize Automation Third-Party IPAM SDK;
- Дополнительные модули python для работы с phpIPAM не использовались (все запросы через модуль requests).
Плагин phpIPAM
v1.1.43
Основные возможности текущей версии плагина:
- Аутентификация пользователя по логину/паролю;
- Аутентификация по токену API;
- Отключение проверки SSL сертификата (для обхода ошибки при импорте цепочки самоподписанных сертификатов, включается в настройках плагина);
- Фильтрация списка доступных vRA подсетей (включается в настройках плагина);
- Резервирование первого свободного IP адреса из подсети;
- Проверка недоступности IP (ping) перед резервированием (включается в настройках плагина);
- Проверка отсутствия PTR записи на DNS сервере (включается в настройках плагина);
- Пометка в базе IPAM IP, не прошедших проверку;
- Резервирование статического IP, переданного из vRA;
- Проверка статического IP через ping и сравнение по hostname, если IP уже зарезервирован в IPAM;
- Получение адреса шлюза подсети из IPAM;
- Реализация метода update_record (передача MAC-адреса VM из vRA в IPAM).
phpIPAM.zip содержит готовый к установке и работе плагин vRA 8. Также доступы все исходные коды на Python для адаптации плагина под особенности своей среды.
Установка и обновление плагина
Установка плагина phpIPAM:
- Перейдите в Infrastructure -> Connections -> Integrations;
- Нажмите Add Integration и выберите IPAM;
- Зайдите в Manage IPAM Providers и импортируйте плагин из phpIPAM.zip;
- После установки пакета выберите его в поле Provider;
- Заполните все поля формы:
- для подключения необходимо в phpIPAM создать “API key” с параметром App security равным “SSL with App code token”;
- флаг “Enable subnet filtering” включает фильтрацию списка подсетей, передаваемых в vRA; при включении фильтрации укажите название поля в phpIPAM и его значение; поля, добавленные вручную (Custom fields), в БД получают префикс “custom_”: т.е. поле “vRA” будет называться “custom_vRA”;
- Нажмите Validate для проверки соединения с сервером IPAM;
- Если видите сообщение “Credentials Validated Successfully“, то нажмите Add для завершения настройки плагина;
- имеется проблема импорта самоподписанного сертификата phpIPAM при использовании цепочки сертификатов, для игнорирования ошибки измените значение поля ignoreSslWarning на true;
- После установки плагин получит из phpIPAM список доступных подсетей (phpIPAM_GetIPRanges, запускается автоматически каждые 10 минут);
- Для проверки статуса загрузки подсетей заново откройте настроенный пакет интеграции, результат загрузки подсетей отображается в поле Status (первое поле на форме).
Плагин готов к работе. Теперь в настройках нового IP Range (Manage IP Ranges) можно указать тип источника External и выбрать установленный пакет интеграции.
Обновление плагина:
- Перейдите в Infrastructure -> Connections -> Integrations и откройте подключенный пакет интеграции;
- Зайдите в Manage IPAM Providers и импортируйте архив с новой версией плагина, если название плагина такое же как у одного из установленных, то vRA предложит заменить старую версию плагина;
- Заполните необходимые поля формы, выполните проверку соединения Validate и сохраните изменения:
- данный пункт необязателен, если параметры соединения и настройки не изменяются.
Мониторинг, отладка, логи
В процессе настройки и работы плагин phpIPAM будет выполнять определенные действия: ValidateEndpoint, GetIPRanges, AllocateIP, DeallocateIP… vRA позволяет просматривать лог работы и параметры вызова/выполнения каждого действия:
- Перейдите в Extensibility -> Activity -> Action Runs;
- Выберите Integration runs в выпадающем списке справа;
- Для просмотра информации о запуске выберите нужное действие.