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

StackOverflow https://stackoverflow.com/questions/176273

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

<Ол>
  • Сборка завершена
  • CI запускает виртуальную машину (или она всегда работает)
  • CI использует scp / sftp для загрузки сборки в виртуальную машину по сети
  • CI использует ssh (если доступно в целевой ОС, работающей на ВМ) или другое средство удаленного выполнения команд для запуска установки в среде ВМ
  • VMWare Server - бесплатный и очень стабильный продукт. Это также дает вам возможность создавать снимки среза виртуальной машины и выполнять откат к предыдущей версии вашей виртуальной машины, когда это необходимо. На Win 2003 будет работать нормально.

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

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

    VBoxManage startvm "Windows 2003 Server" -type vrdp
    

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

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

    • Управляйте версиями вашей виртуальной среды с помощью vagrant provisioning scripts (Chef или Puppet).

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

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

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

    Ссылка:

    vagrantup.com

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

    Выбор VMware в настоящее время ЯВЛЯЕТСЯ неплохим выбором.

    Однако, Точно так же, как VMware предоставляет поддержку VMware server, SUN предоставляет поддержку VirtualBox.

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top