Upload
positive-hack-days
View
4.586
Download
4
Embed Size (px)
Citation preview
vSphereTools- инструмент для автоматизации работы с vSphere
Тимур ГильмуллинРуководитель отдела технологий разработки
(DevOps)[email protected]
https://www.linkedin.com/in/tgilmullin
Проблема:отсутствие инструментов Deploy & Testing
Positive Technologies
Середина 2014 года:+ сборки на TeamCity есть - деплоя нет - автотестирования на ВМ нет
Типовая схема сборок с продвижением в TeamCity
Выбор инструментов
На середину 2014 года было известно два решения:• Использовать api, предоставляемое VMware, библиотеку VIX API: https://
www.vmware.com/support/developer/vix-api/
• Использовать библиотеку pysphere: https://pypi.python.org/pypi/pysphere
VIX API vs pysphere. Недостатки.
VIX API имел высокий порог вхождения:• сложные, плохо документированные, на тот момент, C-библиотеки
• всю интеграцию со своими CI-системами нужно писать самому на C
Вообще недокументированный pysphere:• написанный под Python 2.7
• с отсутствующим интерфейсом командной строки
• представлял собой набор разрозненных классов, хаотично раскиданных по скриптам пакета
• развивающийся на тот момент проект с кучей багов
Преимущества pysphere перед VIX API
• Работает гораздо быстрее, за счёт использования http rest api для доступа к функциям vSphere
• Экспертиза по Python в Компании гораздо выше, за счёт чего порог вхождения для использования этого инструмента – ниже
• Отзывы о самописной библиотеке PT.VIX поверх VIX API, не выдерживали никакой критики, в плане поддержки и надёжности её работы
vSphereToolsМодель и реализация
Набор инструментов vSphereTools. Цели и требования.
Должен поддерживать одновременно три варианта использования:• Работает из консоли и имеет широкий набор команд
• Имеет понятное api для возможности его импорта как обычной python-библиотеки
• Встроен в TeamCity в качестве метараннеров, доступных для выбора в шагах конфигураций
Концептуальная модель взаимодействия vSphereTools со Сферой
AS SECG
Требования к окружению для vSphereTools
Полная документация с примерами доступна в сообществе DevOpsHQ: https://github.com/devopshq/vspheretools/wiki/vSphereTools-Instruction-(ru)
• Служебный пользователь для доступа к Сфере
• Доступен сервис vcenter с машины, на которой запускаются vSphereTools, а также ESX на котором работает целевая ВМ
• Установлены инструменты VMvare Tools на целевой ВМ
• Установлен Python 2*, версий 2.7 или старше, на машине, на которой запускаются vSphereTools
Метараннеры для 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-код
Где используются метараннеры vSphereTools
Метараннеры используются для деплоя и тестирования продуктов Компании:• MPX.SIEM (подпроекты: MPXDeployment, mpx.installator.tests, UI, ScannerDev и др.)
• SIEM (множество подпроектов и компонент PTSIEM)
• WebEcoSystem (множество подпроектов и компонент WebEngine, PT AI, PT AF)
• CERT (подпроекты CERT Group)
vSphereToolsОграничения и возможные доработки
Ограничения самописного инструмента vSphereTools
• Последняя доступная в индексе версия pysphere 0.1.8., а она лежит в основе vSphereTools
• Новые методы для vSphereTools приходится реализовывать только силами DevOps-отдела
• Новые версии VMware vSphere, возможно, не будут поддерживать старое api
• Только для python 2.* (от 2.7 и выше)
Возможные доработки инструмента 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
Спасибо!Вопросы?
Тимур ГильмуллинРуководитель отдела технологий разработки
(DevOps)[email protected]
https://www.linkedin.com/in/tgilmullin