Первые тесты переноса виртуальных машин с vRA7 на vRA8 показали, что мигрированные машины не регистрируются во встроенном IPAM. Использовать его на подсетях, где уже есть VM, не получится, – требуется внешний IPAM. Наш SolarWinds IPAM не имеет готовой интеграции с vRA8, поэтому разработали плагин сами.
- Плагин создавался в соответствии с документацией по разработке пакетов интеграции Creating and DeployingaProvider-specific IPAM Integration Package for VMware Cloud Assembly;
- За основу взят набор инструментов для разработки пакета VMware vRealize Automation Third-Party IPAM SDK;
- Для взаимодействия с SolarWinds IPAM применяется Orion SDK for Python.
Плагин SolarWinds IPAM
v0.8.8
Подготовка к работе
SolarWinds.zip содержит плагин для vRA 8, готовый к установке и работе. В архиве содержится набор модулей Python, которые легко адаптировать под свою среду.
Основные изменения, которые Вам возможно потребуются – это настройка выборки подсетей из IPAM и их параметров для передачи в vRA. За этот функционал отвечает модуль GetIPRanges (./src/SolarWinds_GetIPRanges/source.py).
- функции collect_ranges и get_paginator содержат запросы к IPAM для создания списка и подсчета общего количества подсетей;
- для получения дополнительных данных о подсетях эти запросы потребуется изменить (в комментариях есть образцы запросов с выборкой данных из Custom Properties);
- структура таблиц SolarWinds IPAM может изменяться (наш сервер IPAM – старый, он пережил несколько обновлений, и его набор таблиц отличается от свежего сервера последней версии), проверяйте работу своих запросов в SWQL Studio (входит в Orion SDK);
- в функции collect_ranges можно отредактировать значения возвращаемых в vRA полей.
После редактирования кода необходимо заново собрать дистрибутив плагина. Можно вручную заменить файлы в архиве SolarWinds.zip или можно воспользоваться скриптом _create_package.sh.
Установка и обновление плагина
Установка плагина SolarWinds IPAM:
- Перейдите в Infrastructure -> Connections -> Integrations;
- Нажмите Add Integration и выберите IPAM;
- Зайдите в Manage IPAM Providers и импортируйте плагин из SolarWinds.zip;
- После установки пакета выберите его в поле Provider;
- Заполните все поля формы и нажмите Validate для проверки соединения с сервером IPAM;
- Если видите сообщение “Credentials Validated Successfully“, то нажмите Add для завершения настройки плагина;
- После установки плагин запросит у IPAM список доступных подсетей (SolarWinds_GetIPRanges, запускается автоматически каждые 10 минут);
- Для проверки статуса загрузки подсетей заново откройте настроенный пакет интеграции, результат загрузки отображается в поле Status (первое поле на форме).
Плагин готов к работе. Теперь при настройке нового IP Range (Manage IP Ranges) можно указать тип источника External и выбрать настроенный пакет интеграции.
Обновление плагина:
- Перейдите в Infrastructure -> Connections -> Integrations и откройте подключенный пакет интеграции;
- Зайдите в Manage IPAM Providers и импортируйте архив с новой версией плагина, если название плагина такое же как у одного из установленных, то vRA предложит его обновить;
- Заполните необходимые поля формы, выполните проверку соединения Validate и сохраните изменения.
Просмотр логов выполнения
В процессе настройки и работы плагин SolarWinds IPAM будет выполнять определенные действия: ValidateEndpoint, GetIPRanges, AllocateIP, DeallocateIP. vRA позволяет просматривать лог работы и параметры вызова/выполнения каждого действия:
- Перейдите в Extensibility -> Activity -> Action Runs;
- Выберите All runs в выпадающем списке справа;
- Для просмотра подробной информации выберите нужное действие.
Is this plugin supported by SolarWinds or VMWare?
This plugin adds SolarWinds IPAM support to VMware vRealize Automation 8.x.
could you please explain bit how to edit code .We are integrating vra 8.4 to Solarwind 2020
It is necessary to adjust the query to get subnets in the ‘SolarWinds_GetIPRanges’ module, it is set in the ‘query’ variable.
Ok.Thank You ! let me try.
Share your SQL queries, they might be useful to someone.
The src folder contains the function code. After making changes, you need to rebuild the plugin package by running the _create_package.sh script.
HI,
We are trying to integrate VRA 8.4 with solarwind IPAM 2020.2.5.We have dowloaded the plugin given by you but not able to figure out code changes. We have tried with your package but it does not populate on IP ranges.
Any suggestion ?
Regards,
Nimisha
Have you sorted out the problem? Can you show the logs?
Extensibility -> Activity -> Action Runs -> Integration runs
Hello I am trying to connect to a solarwinds that is through tcp port 8787, https://10.1.10.10:8787/Orion/, in which code library I can customize that port 8787
Hi
Have implemented this OK however when trying to override IPAM allocation by using address: field the entered address is not used. Instead it still just gets allocated the next available IP.
I can see in the extensibility actions that the correct IP is listed against “start”: “xxx.xxx.xxx.xxx”
That’s right, the functionality of using a static address in this version of the plugin has not yet been. This is already implemented in the next version. If you need, I can upload the latest updates.
The plugin has been updated, download the latest version.
Hi Istomin
Been using the plugin for a while now and it’s been working fine. Have recently upgrade to vRA 8.7 and now receive the following error:
When trying to preform data collection:
java.util.concurrent.CompletionException: com.vmware.admiral.ipam.controller.exception.ActionRunFailedException: Execution of action SolarWinds_GetIPRanges failed on provider side: Installing dependencies for action has failed: Installing dependencies ‘requests==2.21.0
orionsdk’ for runtime ‘python’ has failed.
When validating the connection:
Installing dependencies for action has failed: Installing dependencies ‘requests==2.21.0 orionsdk’ for runtime ‘python’ has failed.
This has effected both IP allocation and deallocation. I’ve raised an SR with VMware about this but wondered if you had came across this and maybe had a fix.
Regards
Scott
The bug has been fixed. Download the latest version of the plugin.
Hi
I have a problem with the integration since updating vRA to 8.7. We now get the following error.
java.util.concurrent.CompletionException: com.vmware.admiral.ipam.controller.exception.ActionRunFailedException: Execution of action SolarWinds_GetIPRanges failed on provider side: Installing dependencies for action has failed: Installing dependencies ‘requests==2.21.0
orionsdk’ for runtime ‘python’ has failed.
Were you aware of any issues with the integration working with vRA 8.7
on line 99 in GetIPRanges: “endIPAddress”: get_next_ip(subnet[“Address”], count – 2), the code seems to add the total count of addresses to the last octet. this will fail with any subnets over /24 in size (e.g. 10.60.10.1022 will be invalid in cloud assembly). Do you guys already have some code to account for this before I create my own get_next_ip function?
If it’s not difficult, then fix it yourself. If you need help, then write to me, I will help.
Have a problem with the plugin working with vRA 8.7 and 8.8
Get the following error upon collection
java.util.concurrent.CompletionException: com.vmware.admiral.ipam.controller.exception.ActionRunFailedException: Execution of action SolarWinds_GetIPRanges failed on provider side: Installing dependencies for action has failed: Installing dependencies ‘requests==2.21.0
orionsdk’ for runtime ‘python’ has failed.
Hi
Have problems with the integration working since upgrading to vRA 8.7. Now get the following error:
java.util.concurrent.CompletionException: com.vmware.admiral.ipam.controller.exception.ActionRunFailedException: Execution of action SolarWinds_GetIPRanges failed on provider side: Installing dependencies for action has failed: Installing dependencies ‘requests==2.21.0
orionsdk’ for runtime ‘python’ has failed.
The bug has been fixed. Download the latest version of the plugin.
Добрый день,
При добавлении плагина в vRA 8.4, после нажатия кнопки validate пишет ошибку:
Failed to validate credentials. Error: Execution of action SolarWinds_ValidateEndpoint failed on provider side…
C чем это может быть связано?
А что vRA пишет в логах выполнения SolarWinds_ValidateEndpoint?
Проблема решилась после патчинга на версию 8.5.1. Но теперь возникла другая проблема. Во время попытки зарезервировать IP адрес в SolarWinds IPAM vRA выдает ошибку: IP ALLOCATE_SPECIFIC_IP failed: No free Its found. Хотя пул адресов в IPAM полностью свободный. Буду признателен за помощь. Спасибо
Добрый день!
Хотелось бы конкретики, нужны json-данные запроса и полный лог…
Hi,
I have a problem with adding IPAM SolarWinds plugin. Validate error:
Failed to validate credentials. Error: Execution of action SolarWinds_ValidateEndpoint failed on provider side: [36mINFO[0008]….You are required to change your password immediately (password expired) groupadd: PAM: Authentication token is no longer valid; new one required error building image: error building stage: waiting for process to exit: exit status 1.
Александр, добрый день!
Меня зовут Игорь, у меня хоть и не малый стаж в ИТ, но бывают случаи когда чувствуешь себя чайником.
Поэтому заранее прошу прощения если где то напишу глупость.
И так, к делу, у нас проблемка: есть случаи когда при создании новой машины через VRA, SolarWinds ipam выдаёт\возвращает адрес, который в ipam находится в статусе Transient, и в этом случае деплой машины падает.
Вопросы:
Как плагин vra-solarwinds-ipam обращается к ipam, запрашивает ли он только адреса что в статусе Available? Если да, то почему происходит то что происходит?
Я понимаю так, если адрес в ipam стал Transient, значит ipam не достучался до той машины к которой адрес принадлежал и адрес должен остаться неприкасаемым до истечения периода Transient, а только затем должен перейти в статус Available.
Даже если по мнению ipam адрес оказался свободным (хотя на самом деле он Transient не Available !) и по запросу от VRA он выдал этот адрес новой машине, почему падает деплой машины, максимум машина должна подняться без сети.
Сообщение об ошибке и логи в VRA совсем бессмысленные, опытным путём мы поняли что проблема в ipam. Если в ipam статус проблемного адреса поменять на Reserved, то тогда следующий раз ipam выдаёт следующий свободный адрес который в статусе Available.
Короче, извечный вопрос, кто виноват?
Буду очень благодарен хотя бы за намёк, где копать.
VRA Aria Automation 8.12.1.31050 (21768489)
SolarWinds Platform, IPAM: 2023.2.0
Добрый день!
Поскольку плагин для IPAM – это всего лишь архив со скриптами на питоне, то самый простой вариант – открыть код и посмотреть. Если речь идёт о моём плагине, то смотреть нужно в SolarWinds_AllocateIP.zip/source.py. Получение нового IP найдёте в функции get_free_ip, используются внутренние механизмы SolarWinds IPAM. Если Вас это не устраивает, то можно переписать по своему вкусу, например, взять случайный адрес из возвращаемых функцией get_free_ips (они гарантированно свободные: Status=2).
Thanks for your SDK
I used it on one of my envrionments it seems to work well but i found some bug that prevent me from using this :
when the IPAM has a network of /16 it tries to calculate the start IP address and the End IP address ,
for example the CIDR is 172.16.0.0/16
the end IP calculated address is :172.16.0.65534 (???)
I made a fix for your problem, but I have no way to test it because I don’t use SolarWinds IPAM anymore. Please check it and write to me.