1. VIX API против pysphere.
2. vSphereTools - это набор скриптов от DevOps для поддержки работы с vSphere и виртуальными машинами.
3. Описание инструмента, его достоинства и недостатки, возможные доработки.
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
1. vSphereTools
- инструмент для автоматизации работы с vSphere
Тимур Гильмуллин
Руководитель отдела технологий разработки
(DevOps)
tgilmullin@ptsecurity.com
https://www.linkedin.com/in/tgilmullin
3. Positive Technologies
Середина 2014 года:
+ сборки на TeamCity есть
- деплоя нет
- автотестирования на ВМ нет
Типовая схема сборок с продвижением в TeamCity
4. Выбор инструментов
На середину 2014 года было известно два решения:
• Использовать api, предоставляемое VMware, библиотеку VIX API:
https://www.vmware.com/support/developer/vix-api/
• Использовать библиотеку pysphere:
https://pypi.python.org/pypi/pysphere
5. VIX API vs pysphere. Недостатки.
VIX API имел высокий порог вхождения:
• сложные, плохо документированные, на тот момент, C-библиотеки
• всю интеграцию со своими CI-системами нужно писать самому на C
Вообще недокументированный pysphere:
• написанный под Python 2.7
• с отсутствующим интерфейсом командной строки
• представлял собой набор разрозненных классов, хаотично раскиданных
по скриптам пакета
• развивающийся на тот момент проект с кучей багов
6. Преимущества pysphere перед VIX API
• Работает гораздо быстрее, за счёт использования http rest api для доступа к
функциям vSphere
• Экспертиза по Python в Компании гораздо выше, за счёт чего порог вхождения для
использования этого инструмента – ниже
• Отзывы о самописной библиотеке PT.VIX поверх VIX API, не выдерживали никакой
критики, в плане поддержки и надёжности её работы
8. Набор инструментов vSphereTools. Цели и требования.
Должен поддерживать одновременно три варианта использования:
• Работает из консоли и имеет широкий набор команд
• Имеет понятное api для возможности его импорта как обычной python-библиотеки
• Встроен в TeamCity в качестве метараннеров, доступных для выбора в шагах конфигураций
10. Требования к окружению для vSphereTools
Полная документация с примерами доступна в сообществе DevOpsHQ:
https://github.com/devopshq/vspheretools/wiki/vSphereTools-Instruction-(ru)
• Служебный пользователь для доступа к Сфере
• Доступен сервис vcenter с машины, на которой запускаются vSphereTools, а также ESX на
котором работает целевая ВМ
• Установлены инструменты VMvare Tools на целевой ВМ
• Установлен Python 2*, версий 2.7 или старше, на машине, на которой запускаются
vSphereTools
11. Метараннеры для TeamCity
Скрипты vSphereTools, используемые в метараннерах, реализуют множество функций:
• Start VM - запускает ВМ и ожидает загрузки OS в течение указанного времени
• Stop VM - останавливает ВМ
• Create VM snapshot - создаёт снапшот для ВМ
• Revert VM to named snapshot - откатывает ВМ на указанный снапшот
• Clone VM into directory - клонирует ВМ в указанный каталог на Сфере
• Delete VM - удаляет ВМ со Сферы
• Upload file to VM - копирует локальный файл внутрь указанной ВМ
• Execute command on VM - запускает программу на ВМ, получает логи и exit-код
12. Где используются метараннеры vSphereTools
Метараннеры используются для деплоя и тестирования продуктов Компании:
• MPX.SIEM (подпроекты: MPXDeployment, mpx.installator.tests, UI, ScannerDev и др.)
• SIEM (множество подпроектов и компонент PTSIEM)
• WebEcoSystem (множество подпроектов и компонент WebEngine, PT AI, PT AF)
• CERT (подпроекты CERT Group)
14. Ограничения самописного инструмента vSphereTools
• Последняя доступная в индексе версия pysphere 0.1.8., а она лежит в основе
vSphereTools
• Новые методы для vSphereTools приходится реализовывать только силами
DevOps-отдела
• Новые версии VMware vSphere, возможно, не будут поддерживать старое api
• Только для python 2.* (от 2.7 и выше)
15. Возможные доработки инструмента vSphereTools
VIX Скрипты и метараннеры выложены в open-source DevOpsHQ:
• vSphereTools:
https://github.com/devopshq/vspheretools
• Метараннеры:
https://github.com/devopshq/teamcitytools/tree/master/vspheretools-metarunners
• Инструкции к скриптам на GitHub-wiki:
https://github.com/devopshq/vspheretools/wiki/vSphereTools-Instruction-(ru)
Переписать vSphereTools на VMware vCloud Suite SDK for Python for vSphere 6.0:
• Документация:
https://developercenter.vmware.com/web/sdk/60/vcloudsuite-python
• Проект pyVmomi:
https://github.com/vmware/pyvmomi