Создание образа виртуальной машины как артефакт непрерывной интеграции?

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

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

Ответ 1

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

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

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

Ответ 2

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

  • Сборка выполнена
  • CI запускает виртуальную машину (или она всегда работает)
  • CI использует scp/sftp для загрузки сборки в виртуальную машину через сеть.
  • CI использует ssh (если он доступен в целевой операционной системе, запущенной в виртуальной машине) или другое средство выполнения удаленных команд для запуска установки в среде VM.

Ответ 3

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

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

Ответ 4

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

VBoxManage startvm "Windows 2003 Server" -type vrdp

Ответ 5

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

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

  • Версия контролирует вашу среду VM с использованием сценариев создания бродяг (шеф-повар или кукольный)

  • Создайте свою систему с помощью Jenkins/Hudson

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

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

Ссылка:

vagrantup.com

Ответ 6

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

Ответ 7

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

Однако, Так же, как VMWare обеспечивает поддержку сервера VMWare, SUN поддерживает VirtualBOX.

Ответ 8

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