16
vSphereTools - инструмент для автоматизации работы с vSphere Тимур Гильмуллин Руководитель отдела технологий разработки (DevOps) [email protected] https://www.linkedin.com/in/tgilmul lin

vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

Embed Size (px)

Citation preview

Page 1: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

vSphereTools- инструмент для автоматизации работы с vSphere

Тимур ГильмуллинРуководитель отдела технологий разработки

(DevOps)[email protected]

https://www.linkedin.com/in/tgilmullin

Page 2: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

Проблема:отсутствие инструментов Deploy & Testing

Page 3: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

Positive Technologies

Середина 2014 года:+ сборки на TeamCity есть - деплоя нет - автотестирования на ВМ нет

Типовая схема сборок с продвижением в TeamCity

Page 4: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

Выбор инструментов

На середину 2014 года было известно два решения:• Использовать api, предоставляемое VMware, библиотеку VIX API: https://

www.vmware.com/support/developer/vix-api/

• Использовать библиотеку pysphere: https://pypi.python.org/pypi/pysphere

Page 5: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

VIX API vs pysphere. Недостатки.

VIX API имел высокий порог вхождения:• сложные, плохо документированные, на тот момент, C-библиотеки

• всю интеграцию со своими CI-системами нужно писать самому на C

Вообще недокументированный pysphere:• написанный под Python 2.7

• с отсутствующим интерфейсом командной строки

• представлял собой набор разрозненных классов, хаотично раскиданных по скриптам пакета

• развивающийся на тот момент проект с кучей багов

Page 6: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

Преимущества pysphere перед VIX API

• Работает гораздо быстрее, за счёт использования http rest api для доступа к функциям vSphere

• Экспертиза по Python в Компании гораздо выше, за счёт чего порог вхождения для использования этого инструмента – ниже

• Отзывы о самописной библиотеке PT.VIX поверх VIX API, не выдерживали никакой критики, в плане поддержки и надёжности её работы

Page 7: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

vSphereToolsМодель и реализация

Page 8: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

Набор инструментов vSphereTools. Цели и требования.

Должен поддерживать одновременно три варианта использования:• Работает из консоли и имеет широкий набор команд

• Имеет понятное api для возможности его импорта как обычной python-библиотеки

• Встроен в TeamCity в качестве метараннеров, доступных для выбора в шагах конфигураций

Page 9: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

Концептуальная модель взаимодействия vSphereTools со Сферой

AS SECG

Page 10: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

Требования к окружению для 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 | Тимур Гильмуллин

Метараннеры для 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 | Тимур Гильмуллин

Где используются метараннеры vSphereTools

Метараннеры используются для деплоя и тестирования продуктов Компании:• MPX.SIEM (подпроекты: MPXDeployment, mpx.installator.tests, UI, ScannerDev и др.)

• SIEM (множество подпроектов и компонент PTSIEM)

• WebEcoSystem (множество подпроектов и компонент WebEngine, PT AI, PT AF)

• CERT (подпроекты CERT Group)

Page 13: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

vSphereToolsОграничения и возможные доработки

Page 14: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

Ограничения самописного инструмента vSphereTools

• Последняя доступная в индексе версия pysphere 0.1.8., а она лежит в основе vSphereTools

• Новые методы для vSphereTools приходится реализовывать только силами DevOps-отдела

• Новые версии VMware vSphere, возможно, не будут поддерживать старое api

• Только для python 2.* (от 2.7 и выше)

Page 15: vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин

Возможные доработки инструмента 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 | Тимур Гильмуллин

Спасибо!Вопросы?

Тимур ГильмуллинРуководитель отдела технологий разработки

(DevOps)[email protected]

https://www.linkedin.com/in/tgilmullin