2008-10-06 14 views
10

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

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

+0

Я думаю, что "Пакер" стоит упомянуть здесь. «Packer - это инструмент с открытым исходным кодом для создания идентичных изображений машин для нескольких платформ из одной конфигурации источника». https://www.thoughtworks.com/radar/techniques/machine-image-as-a-build-artifact https://www.packer.io/intro/index.html – 2017-02-26 07:38:12

ответ

7

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

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

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

+0

Сервер VMWare достиг конца жизни в 2011. VMware Player - это новое бесплатное предложение, заменяющее VMWare Server. – 2013-08-12 20:02:30

0

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

1

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

  1. Сложение делается
  2. CI запускает виртуальную машину (или она всегда работает)
  3. CI использует SCP/SFTP для загрузки Встраиваемая В.М. по сети
  4. CI использует SSH (если таковая имеется на целевой ОС работает в VM) или другого удаленного выполнения команд установки для запуска установки в среде VM
1

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

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

1

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

VBoxManage startvm "Windows 2003 Server" -type vrdp 
0

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

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

+0

Я видел, что VirtualBox спонсировался Sun, но когда вы идете на сайт, самое близкое, что вы видите на странице поддержки, - это форум сообщества. Я не думаю, что это точно так же, как VMWare, который, очевидно, больше посвящен этому конкретному продукту. – 2008-10-09 11:53:20

0

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

1

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

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

  • Версия управления в среде VM с помощью бродячие скриптов инициализации (Chef или кукольных)

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

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

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

Ссылка:

vagrantup.com