Создание образа виртуальной машины как артефакт непрерывной интеграции? - PullRequest
10 голосов
/ 07 октября 2008

В настоящее время я работаю над серверным продуктом, который немного сложен для развертывания на новом сервере, что делает его идеальным кандидатом для тестирования в виртуальной машине. Мы уже используем Hudson в качестве нашей CI-системы, и мне бы очень хотелось иметь возможность развернуть образ виртуальной машины с самым последним и лучшим программным обеспечением в качестве артефакта сборки.

Итак, как же это сделать? Какое программное обеспечение VM рекомендуется для этой цели? Сколько сценариев нужно сделать, чтобы достичь этого? Есть ли какие-либо проблемы, в частности, при использовании Windows 2003 Server в качестве ОС здесь?

Ответы [ 8 ]

7 голосов
/ 09 октября 2008

Извините, что отказываю кому-либо в принятии здесь ответа, но, основываясь на дальнейших исследованиях (благодаря вашим ответам!), Я нашел лучшее решение и хотел обобщить то, что нашел.

Во-первых, VirtualBox и VMWare Server - отличные продукты, и поскольку оба они бесплатны, каждый стоит оценить. Мы решили использовать VMWare Server, поскольку он является более устоявшимся продуктом, и мы можем получить поддержку для него в случае необходимости. Это особенно важно, поскольку мы также рассматриваем возможность распространения нашего программного обеспечения среди клиентов в качестве виртуальной машины вместо специальной установки на сервере, предполагая, что накладные расходы от VMWare Player не слишком велики. Кроме того, существует интерфейс сценариев VMWare , называемый VIX, который можно использовать для непосредственной установки файлов на виртуальную машину без необходимости устанавливать SSH или SFTP, что является большим преимуществом.

Итак, наше решение в основном следующее: сначала мы создаем «ванильный» образ виртуальной машины с ОС, ничего больше, и заходим в репозиторий. Затем мы пишем скрипт, который действует как наш установщик, помещая артефакты, созданные Хадсоном, в виртуальную машину. Этот скрипт должен иметь интерфейсы для копирования файлов напрямую, через SFTP и через VIX. Это позволит нам продолжить распространение программного обеспечения непосредственно на целевой машине или через виртуальную машину по нашему выбору. Затем полученное изображение сжимается и распространяется как артефакт сервера CI.

1 голос
/ 08 ноября 2012

Мы используем Jenkins + Vagrant + Chef для этого сценария.

Таким образом, вы можете сделать следующий процесс:

  • Управление версиями в вашей среде виртуальных машин с помощью сценариев бродячей подготовки (Chef или Puppet)

  • Сборка системы с использованием Jenkins / Hudson

  • Запустите сценарий Vagrant, чтобы получить последний стабильный выпуск с выхода CI

  • Сохранение состояния виртуальной машины для повторного использования в будущем.

Справка:

vagrantup.com

1 голос
/ 08 октября 2008

Если вы используете VirtualBox, вы захотите запустить его без головы, так как он будет на вашем сервере. Обычно VirtualBox запускается как настольное приложение, но можно запускать виртуальные машины из командной строки и получать доступ к виртуальной машине через RDP.

VBoxManage startvm "Windows 2003 Server" -type vrdp
1 голос
/ 07 октября 2008

VMWare Server - бесплатный и очень стабильный продукт. Это также дает вам возможность создавать снимки среза виртуальной машины и выполнять откат к предыдущей версии вашей виртуальной машины, когда это необходимо. На Win 2003 будет работать нормально.

Что касается предоставления новых фрагментов виртуальных машин для ваших сборок, вы можете просто скопировать и вставить папку, содержащую файлы VMWare, изменить SID и IP новой виртуальной машины, и у вас будет новый компьютер. Занимает 15 минут в зависимости от размера вашего виртуального слайса. Сценарии не требуются.

1 голос
/ 07 октября 2008

Независимо от программного обеспечения виртуальной машины (я тоже могу порекомендовать VirtualBox), я думаю, что вы смотрите на следующий сценарий:

  1. Сборка сделана
  2. CI запускает виртуальную машину (или она всегда работает)
  3. CI использует scp / sftp для загрузки сборки в виртуальную машину по сети
  4. CI использует ssh (если доступно в целевой ОС, работающей на ВМ) или другое средство удаленного выполнения команд для запуска установки в среде ВМ
0 голосов
/ 18 июня 2009

Вы также можете выполнить эту задачу с помощью VMWare Studio, которая также бесплатна. Основной рабочий процесс заключается в следующем: 1. Создайте файл XML, который описывает вашу виртуальную машину 2. Используйте студию для создания оболочки. 3. Используйте сервер VMWare для подготовки виртуальной машины.

0 голосов
/ 09 октября 2008

Выбор VMWare в настоящее время НЕ является плохим выбором.

Тем не менее, Так же, как VMWare поддерживает сервер VMWare, SUN поддерживает VirtualBOX.

0 голосов
/ 07 октября 2008

Я бы порекомендовал VirtualBox . Он бесплатный и имеет четко определенный интерфейс программирования, хотя лично я не использовал его в ситуациях автоматической сборки.

...