Опрос CDP/LLDP с ESXi через PowerShell/Python

Однажды у вас может возникнуть желание составить таблицу портов коммутаторов, к которым подключены ваши хосты.

Если у вас “гомогенное” окружение, состоящее из коммутаторов Cisco, то заморачиваться не нужно совсем (CDP настроен в Virtual Switch Standard/Distributed Virtual Switch по умолчанию).

Но если в окружении не только Cisco, то вам необходимо немного сильнее напрячься:

  • использовать только распределенные коммутаторы;
  • включать на них поддержку LLDP;
  • с удивлением обнаружить, что в API опрос CDP и LLDP происходит по-разному.

Так получилось, что я решил для себя задачу опроса CDP/LLDP с помощью Python. Поэтому, когда возникла задача решения ее же через PoSh, я воспользовался уже имеющимися наработками.

Python

Передаем в переменную host результат использования pyvmomi-библиотеки:

Тут список хостов: connection.content.viewManager.CreateContainerView(datacenter, [vim.HostSystem], recursive=True).view

Хост – это один из объектов этого списка.

В результате выполнения этого куска кода в переменной cdp окажется с сетевыми интерфейсами, содержащие имена коммутаторов и портов.

PowerShell

PoSh-вариант представляет собой более законченное решение

Надеюсь, данные куски кода будут кому-либо полезны.

Leave a Reply

Your email address will not be published. Required fields are marked *