- PVSM.RU - https://www.pvsm.ru -
В нашем блоге на Хабре мы много рассказываем о внедрении подходов DevOps и разработанных нами инструментах автоматизации разработки и тестирования. Сегодня речь пойдет о том, как мы решали проблему взаимодействия с VMware vSphere.
В vSphere работают все наши виртуальные машины — как сборочные, так и тестовые серверы.
Пару лет назад до появления нашей собственной системы Continuous Integration [2] большая часть наших сборок была перенесена на инструмент TeamCity. На тот момент у нас не было тестовых и деплойных конфигураций, однако необходимость их развития становилась все более явной.
На середину 2014 года нам было известно два решения для автоматизации работы с виртуальными машинами: использование собственного API VMware [3] для работы с vSphere (библиотека VIX API) и применение библиотеки pysphere [4]. У каждого из этих инструментов были недостатки.
У VIX API был слишком высокий для нас порог вхождения:
Библиотека pysphere вообще была фактически недокументированной и с рядом проблем:
Однако если сравнивать pysphere с VIX API, то у первого были и свои преимущества:
Поэтому было решено использовать эту библиотеку и на ее базе создать собственное решение.
Прежде чем начать программировать, мы составили требования к набору инструментов автоматизации.
Концептуальная модель взаимодействия vSphereTools с самой «Сферой» представлена ниже:
Все довольно просто: инициатор, которым может быть пользователь или скрипт, отправляет команды, полученные через командную строку, инструменту vSphereTools, который переправляет данные библиотеке pysphere. Дальше запрос попадает в vSphere, где обрабатывается и отправляется виртуальной машине, которая выдает то, что нам нужно («стейты», атрибуты и т.п.)
Требования к окружению для vSphereTools были минимальны:
Полная документация с примерами доступна в открытом сообществе DevOpsHQ [6]. В итоге скрипты vSphereTools [6] реализуют множество функций от старта и остановки виртуальных машин до копирования локального файла внутрь нужной виртуалки или запуска на ней конкретной программы.
В настоящий момент метараннеры и скрипты vSphereTools используются при разработке и тестировании практических всех крупных продуктов Positive Technologies — например, MaxPatrol SIEM [7], PT Application Firewall [8] и Application Inspector [9] и во многих других проектах.
Как у любого инструмента у нашего продукта vSphereTools есть и свои ограничения:
Поэтому мы планируем и ряд доработок. Например, хотим переписать vSphereTools на VMware vCloud Suite SDK for Python for vSphere 6.0. Документация [10] этого инструмента уже доступна, также есть и python-api для него — библиотека pyvmomi [11].
P. S. Рассказ о проекте vSphereTools был представлен в рамках DevOps-митапа, который состоялся осенью в Москве.
По ссылке [12] представлены презентации 16 докладов, представленных в ходе мероприятия. Все презентации и видео выступлений будут добавлены в таблицу в конце этого топика-анонса [13].
Автор: Тимур Гильмуллин [14]
Автор: Positive Technologies
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/avtomatizatsiya/217999
Ссылки в тексте:
[1] Image: https://habrahabr.ru/company/pt/blog/317072/
[2] системы Continuous Integration: https://habrahabr.ru/company/pt/blog/313616/
[3] API VMware: https://www.vmware.com/support/developer/vix-api/
[4] pysphere: https://pypi.python.org/pypi/pysphere
[5] Image: https://habrastorage.org/files/e3a/922/50b/e3a92250ba1f4b0186475e2de038f2be.png
[6] открытом сообществе DevOpsHQ: https://github.com/devopshq/vspheretools/wiki/vSphereTools-Instruction-(ru)
[7] MaxPatrol SIEM: https://www.ptsecurity.com/ru-ru/products/mpsiem/
[8] PT Application Firewall: https://www.ptsecurity.com/ru-ru/products/af/
[9] Application Inspector: https://www.ptsecurity.com/ru-ru/products/ai/
[10] Документация: https://developercenter.vmware.com/web/sdk/60/vcloudsuite-python
[11] pyvmomi: https://github.com/vmware/pyvmomi
[12] ссылке: http://www.slideshare.net/phdays
[13] топика-анонса: https://habrahabr.ru/company/pt/blog/310584/
[14] Тимур Гильмуллин: https://www.linkedin.com/in/tgilmullin
[15] Источник: https://habrahabr.ru/post/317072/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.