vSphereTools
- инструмент для автоматизации работы с vSphere
Тимур Гильмуллин
Руководитель отдела технологий разработки
(DevOps)
tgilmullin@ptsecurity.com
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)
tgilmullin@ptsecurity.com
https://www.linkedin.com/in/tgilmullin

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

  • 1.
    vSphereTools - инструмент дляавтоматизации работы с vSphere Тимур Гильмуллин Руководитель отдела технологий разработки (DevOps) tgilmullin@ptsecurity.com https://www.linkedin.com/in/tgilmullin
  • 2.
  • 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 vspysphere. Недостатки. VIX API имел высокий порог вхождения: • сложные, плохо документированные, на тот момент, C-библиотеки • всю интеграцию со своими CI-системами нужно писать самому на C Вообще недокументированный pysphere: • написанный под Python 2.7 • с отсутствующим интерфейсом командной строки • представлял собой набор разрозненных классов, хаотично раскиданных по скриптам пакета • развивающийся на тот момент проект с кучей багов
  • 6.
    Преимущества pysphere передVIX API • Работает гораздо быстрее, за счёт использования http rest api для доступа к функциям vSphere • Экспертиза по Python в Компании гораздо выше, за счёт чего порог вхождения для использования этого инструмента – ниже • Отзывы о самописной библиотеке PT.VIX поверх VIX API, не выдерживали никакой критики, в плане поддержки и надёжности её работы
  • 7.
  • 8.
    Набор инструментов vSphereTools.Цели и требования. Должен поддерживать одновременно три варианта использования: • Работает из консоли и имеет широкий набор команд • Имеет понятное api для возможности его импорта как обычной python-библиотеки • Встроен в TeamCity в качестве метараннеров, доступных для выбора в шагах конфигураций
  • 9.
  • 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)
  • 13.
  • 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
  • 16.
    Спасибо! Вопросы? Тимур Гильмуллин Руководитель отделатехнологий разработки (DevOps) tgilmullin@ptsecurity.com https://www.linkedin.com/in/tgilmullin