![Page 1: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/1.jpg)
vSphereTools- инструмент для автоматизации работы с vSphere
Тимур ГильмуллинРуководитель отдела технологий разработки
(DevOps)[email protected]
https://www.linkedin.com/in/tgilmullin
![Page 2: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/2.jpg)
Проблема:отсутствие инструментов Deploy & Testing
![Page 3: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/3.jpg)
Positive Technologies
Середина 2014 года:+ сборки на TeamCity есть - деплоя нет - автотестирования на ВМ нет
Типовая схема сборок с продвижением в TeamCity
![Page 4: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/4.jpg)
Выбор инструментов
На середину 2014 года было известно два решения:• Использовать api, предоставляемое VMware, библиотеку VIX API: https://
www.vmware.com/support/developer/vix-api/
• Использовать библиотеку pysphere: https://pypi.python.org/pypi/pysphere
![Page 5: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/5.jpg)
VIX API vs pysphere. Недостатки.
VIX API имел высокий порог вхождения:• сложные, плохо документированные, на тот момент, C-библиотеки
• всю интеграцию со своими CI-системами нужно писать самому на C
Вообще недокументированный pysphere:• написанный под Python 2.7
• с отсутствующим интерфейсом командной строки
• представлял собой набор разрозненных классов, хаотично раскиданных по скриптам пакета
• развивающийся на тот момент проект с кучей багов
![Page 6: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/6.jpg)
Преимущества pysphere перед VIX API
• Работает гораздо быстрее, за счёт использования http rest api для доступа к функциям vSphere
• Экспертиза по Python в Компании гораздо выше, за счёт чего порог вхождения для использования этого инструмента – ниже
• Отзывы о самописной библиотеке PT.VIX поверх VIX API, не выдерживали никакой критики, в плане поддержки и надёжности её работы
![Page 7: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/7.jpg)
vSphereToolsМодель и реализация
![Page 8: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/8.jpg)
Набор инструментов vSphereTools. Цели и требования.
Должен поддерживать одновременно три варианта использования:• Работает из консоли и имеет широкий набор команд
• Имеет понятное api для возможности его импорта как обычной python-библиотеки
• Встроен в TeamCity в качестве метараннеров, доступных для выбора в шагах конфигураций
![Page 9: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/9.jpg)
Концептуальная модель взаимодействия vSphereTools со Сферой
AS SECG
![Page 10: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/10.jpg)
Требования к окружению для vSphereTools
Полная документация с примерами доступна в сообществе DevOpsHQ: https://github.com/devopshq/vspheretools/wiki/vSphereTools-Instruction-(ru)
• Служебный пользователь для доступа к Сфере
• Доступен сервис vcenter с машины, на которой запускаются vSphereTools, а также ESX на котором работает целевая ВМ
• Установлены инструменты VMvare Tools на целевой ВМ
• Установлен Python 2*, версий 2.7 или старше, на машине, на которой запускаются vSphereTools
![Page 11: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/11.jpg)
Метараннеры для 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-код
![Page 12: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/12.jpg)
Где используются метараннеры vSphereTools
Метараннеры используются для деплоя и тестирования продуктов Компании:• MPX.SIEM (подпроекты: MPXDeployment, mpx.installator.tests, UI, ScannerDev и др.)
• SIEM (множество подпроектов и компонент PTSIEM)
• WebEcoSystem (множество подпроектов и компонент WebEngine, PT AI, PT AF)
• CERT (подпроекты CERT Group)
![Page 13: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/13.jpg)
vSphereToolsОграничения и возможные доработки
![Page 14: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/14.jpg)
Ограничения самописного инструмента vSphereTools
• Последняя доступная в индексе версия pysphere 0.1.8., а она лежит в основе vSphereTools
• Новые методы для vSphereTools приходится реализовывать только силами DevOps-отдела
• Новые версии VMware vSphere, возможно, не будут поддерживать старое api
• Только для python 2.* (от 2.7 и выше)
![Page 15: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/15.jpg)
Возможные доработки инструмента 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
![Page 16: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин](https://reader036.vdocuments.pub/reader036/viewer/2022062302/58f15c081a28ab9d688b464b/html5/thumbnails/16.jpg)
Спасибо!Вопросы?
Тимур ГильмуллинРуководитель отдела технологий разработки
(DevOps)[email protected]
https://www.linkedin.com/in/tgilmullin