Не секрет, что решение ChatGPT прочно вошло в ежедневный набор инструментов ИТ-специалистов, особенно разработчиков ПО. Администраторы VMware vSphere - не исключение, ведь им часто приходится разрабатывать сценарии на базе различных фреймворков и SDK, что часто включает в себя шаблонные задачи, которые вполне можно автоматизировать средствами ChatGPT.
Эрик Слуф недавно занялся этим вопросом. Начал он со следующего промта:
Could you develop a Python script for VMware vCenter to retrieve the virtual machines and allow the user to control their power states? The server details are: host name 'vc.ntpro.local', username 'administrator@ntpro.local', password 'VMware1!' Please ignore certificate errors and use tls.
Ответ ChatGPT оказался продуктивным, с рекомендацией использовать библиотеку pyvmomi для взаимодействия с VMware vCenter. Он дал совет установить библиотеку pyvmomi через pip, если это еще не сделано. Полный код на Python можно найти по этой ссылке.
Для управления проектами на Python можно использовать PyCharm Community Edition. Модуль pyvmomi важен для подобных задач и может быть удобно установлен через терминал с помощью команды pip install pyvmomi. PyCharm также предлагает графический интерфейс для работы с пакетами Python.
После создания нового файла Python вставьте скрипт, предоставленный ChatGPT, в редактор PyCharm. Для выполнения могут потребоваться некоторые корректировки, такие как обновление версий TLS. Если возникнут ошибки, ChatGPT можно использовать для устранения неполадок и поиска новых решений. Как только усовершенствованный скрипт будет реализован, он сможет успешно извлекать и управлять состояниями питания виртуальных машин из vCenter.
На следующем этапе Эрик попросил ChatGPT интегрировать базовый графический интерфейс в скрипт, используя предустановленный модуль TKInter из Python3. Полученный интерфейс отображает список виртуальных машин с функциональными элементами управления питанием. Несмотря на небольшую проблему с "задачей ожидания" во время демонстрации, основная функциональность осталась неизменной.
Помните, что повторные запросы не обязательно приведут к одинаковым результатам при запросе кода у ChatGPT. Точность ваших вопросов повышает способность ChatGPT генерировать эффективный код. Если в вашем сценарии возникают проблемы, ChatGPT может помочь в отладке и даже подробно объяснить принципы работы скрипта.
На днях компания VMware выпутсила большое обновление утилиты vSphere Diagnostic Tool версии 2.0.1, которая теперь называется VCF Diagnostic Tool for vSphere (VDT). Напомним, что это python-скрипт, который запускает диагностические команды на виртуальном модуле Photon OS (на его базе построен, например, vCenter Server Appliance, где скрипт и нужно запускать), а также в перспективе это будет работать и в среде VMware ESXi. О предыдущем обновлении vSphere Diagnostic Tool (VDT) мы писали вот тут.
VDT 2 был переписан с нуля с целью эволюции от простой коллекции скриптов на Python к фреймворку для отчётности о состоянии инфраструктуры на основе Python. Новая версия предоставляет библиотеки, которые стандартизируют вывод и формат каждой проверки. Это означает, что скоро будет доступна совместимость с дополнительными продуктами от VMware.
Итак, с помощью скрипта вы сможете выполнить следующие проверки состояния инфраструктуры:
Вывод базовой информации о vCenter
Проверки SSO (Lookup Service и Machine ID)
Интеграция с Active Directory
Сертификаты vCenter
Функциональность VMdir
Core-файлы
Использование базы данных vPostgres
Использование дискового пространства
Функционирование DNS
Синхронизация времени и функционирование NTP
Валидность аккаунта Root
Службы vCenter
Проверка механизма VCHA
Функционирование Syslog
Проверки IWA/AD
Проверка Local Identity Source
Для начала работы вы можете воспользоваться следующими статьями базы знаний VMware
На днях компания VMware объявила о том, что решения VMware Cloud on AWS Terraform Provider и Python Automation Utility for VMware Cloud on AWS теперь поддерживают аутентификацию приложений OAuth 2.0 для VMware Cloud, что позволяет зарегистрировать средства автоматизации с поддержкой этого типа аутентификации. Теперь администраторы могут управлять учетными данными, привязанными к API-токенам доступа отдельных разработчиков, на уровне организации.
Объекты OAuth app действуют как сущности в рамках коммуникаций server-to-server и могут быть использованы в разных организациях. Только пользователь, создавший API-токен, может управлять им, а владелец OAuth app - это организация, которая управляется администратором с ролью Developer. Поэтому для использования API, где не требуется связывание токена с пользователем (например, полностью автоматизированные решения), рекомендуется не использовать API-токены персональных аккаунтов.
Это позволяет избежать ситуации, когда аккаунт этого человека был деактивирован или устарел, для него изменилась роль и т.п., что может повлиять на сервисы, использующие этот токен. Вместо этого владелец объекта Organization создает OAuth App с App ID и App Secret, чтобы дать доступ приложению по API. Детали этого процесса на платформе VMware Cloud on AWS приведены вот в этой статье.
Итак, здесь есть 2 важных шага по созданию OAuth: создать объект App и назначить его объекту Org.
Для создания App нужно сделать следующее:
Логинимся в CSP, кликаем на имя пользователя и выбираем для него View Organization
Переходим на вкладку OAuth Apps в самом верху страницы
Нажимаем Create App и выбираем Server to server app
Определяем имя приложения, описание, время жизни токена (Access Token TTL, рекомендуется 30 минут). Надо помнить, что как только токен создан - уже нет способа отозвать доступ, поэтому не надо задавать слишком большое время.
Нажимаем Create. Надо помнить, что стоит максимально ограничивать роли для сервисов и действий в рамках организации минимально необходимыми привилегиями.
Скачиваем копию App ID и App Secret.
Помните, что после этого экрана вы уже не сможете скачать App Secret, но вы можете просмотреть App ID, а сам App Secret можно сгенерировать снова. Другие свойства приложения также можно редактировать после создания.
Назначаем объект App объекту Org:
Нажимаем Add после того, как вы создали App, чтобы добавить приложение в текущую организацию.
Переходим на страницу OAuth Apps со страницы View Organization (у пользователя должны быть права по добавлению в эту организацию)
Последний релиз VMware Cloud on AWS Terraform Provider был обновлен и теперь включает два новых поля в файле переменных variables.tf: client_id и client_secret. Параметр client_id - это идентификатор объекта OAuth App, ассоциированный с организацией, а client_secret - это его пароль. Оба этих параметра вместе используются для аутентификации при вызове VMware Cloud Services API. Помимо этой комбинации, вы можете использовать и один параметр api_token.
Решение Python Automation Utility for VMware Cloud on AWS также было обновлено, чтобы поддерживать метод аутентификации OAuth 2.0 app. Чтобы использовать его, нужно указать параметры oauth_clientId и oauth_clientSecret в файле config.ini, как показано в примере ниже:
По умолчанию механизм аутентификации использует API-токен, указанный в поле refresh_Token файла config.ini. Чтобы использовать новый метод аутентификации OAuth app, нужно добавить параметр -oauth при запуске команд, указанных ниже.
Пример команды для использования аутентификации по умолчанию с использованием refresh_Token:
./pyVMC.py sddc show-sddcs
А вот так нужно запускать эту команду для использования аутентификации OAuth app:
./pyVMC.py sddc show-sddcs –oauth
Для получения полного списка команд и инструкций по использованию средства Python Utility for VMware Cloud on AWS обратитесь к этому документу.
Многие Enterprise-администраторы настраивают автоматический регулярный бэкап решения для виртуализации и агрегации сетей VMware NSX-T из консоли, что описано, например, вот тут.
Между тем, как правильно заметил автор virten.net, при неудачном завершении задачи резервного копирования администратор не получает нотификации даже в дэшборде в разделе алармов.
В случае падения задачи бэкапа информация об этом доступна только в разделе Backup & Restore настроек:
В данном примере неудачно завершился процесс резервного копирования кластера, поэтому нужно смотреть не только на статусы узлов (кстати, времена указаны в миллисекундах).
Коллега с virten.net написал сценарий на Python для Nagios, который позволит вам проверить статус последнего бэкапа кластера NSX-T, а также посмотреть возраст последней имеющейся резервной копии:
usage: check_nsxt_backup.py [-h] -n NSX_HOST [-t TCP_PORT] -u USER -p PASSWORD
[-i] [-a MAX_AGE]
# python check_nsxt_backup.py -n nsx.virten.lab -u audit -p password
NSX-T cluster backup failed
NSX-T node backup is to old (1461 minutes)
На сайте проекта VMware Labs обновилась еще одна интересная штука - средство Python Client for VMware Cloud on AWS 1.2, с помощью которого пользователям публичного облака VMware Cloud on AWS можно автоматизировать операции с инфраструктурой виртуального датацентра VMConAWS SDDC.
Это средство представляет собой не клиент для работы с сервером vCenter, а средство удаленного исполнения задач в облаке, таких как создание сетей или настройка групп и правил безопасности на шлюзах Management и Compute Gateways.
Вот небольшой обзор работы утилиты от ее автора Nico Vibert:
Также у него есть подробная статья об использовании этого средства для запуска задач в облачной среде. Список доступных команд Python Client for VMware Cloud on AWS доступен в инструкции.
Вот что нового появилось в версиях 1.2 и 1.1:
Добавлен Dockerfile для построения Docker-образа, в котором будет запускаться PyVMC
На сайте проекта VMware Labs вышла очередная новая утилита - vSphere Pod Autoscaler, предназначенная для пользователей vSphere PodVM, которые хотят настроить автомасштабирование узлов PodVMs на базе использования ими памяти.
После установки у вас появится утилита vcfkite, которая позволит управлять инфраструктурой VCF через SDDC Manager. Она является кроссплатформенной и протестирована на Linux CentOS и Windows 2012.
Сама утилита это wheel-пакет, который можно развернуть с помощью нативной команды pip3:
Основное назначение данного средства - дать пользователям удобный инструмент для управления VMware Cloud Foundation API с помощью простого языка Python.
Для начала работы вам понадобится Python версии 3.6 или более поздней, а также VCF 4.0.1 или более поздняя.
Скачать Python Utility for VMware Cloud Foundation Management можно по этой ссылке.
Данный SDK представляет собой набор классов Python, предназначенных для автоматизации различных операций на уровне компонентов Cloud Assembly, Service Broker и Code Stream API при разработке новых инструментов, дополняющих средства управления облачной средой.
На сайте проекта VMware Labs появилась интересная утилитка VMFork for pyVmomi для администраторов, которые любят ставить всяческие эксперименты со скриптами. Эта утилитка позволяет создать работающую копию запущенной виртуальной машины посредством скрипта на Python, через VMware vSphere API Python Bindings (pyVmomi). Ранее эти возможности были доступны только через PowerCLI.
Напомним, что VMFork позволяет очень быстро сделать работающую копию работающей виртуальной машины на платформе VMware vSphere. Суть технологии такова, что "на лету" создается клон виртуальной машины (VMX-файл, процесс в памяти), который начинает использовать ту же память (Shared memory), что и родительская ВМ. При этом дочерняя ВМ в общую память писать не может, а для записи собственных данных используется выделенная область памяти. Для дисков аналогично - с использованием технологии Copy-on-write в дельта-диск дочерней ВМ пишутся отличия от базового диска родительской ВМ.