Как объединить Vagrant с Jenkins для идеальной среды непрерывной интеграции?



У вас есть проект, который имеет некоторые требования к SW для запуска (например: конкретная версия Apache, версия PHP, экземпляр базы данных MySQL и несколько других частей программного обеспечения).



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



вы также поняли преимущества системы непрерывной интеграции, такие как Дженкинс.



теперь вы хотели бы объединить эти два мира (бродяга и Дженкинс), чтобы получить идеальную среду непрерывной интеграции. Чтобы быть более конкретным, вы не хотели бы устанавливать SW, необходимый для вашего проекта, на машине под управлением Jenkins, но вы хотели бы использовать виртуальную среду, предоставляемую Vagrant, чтобы периодически создавать свой проект на его вершине. Программное обеспечение ИЦ (Дженкинс) будет строить Vagrant машины для сборки и тестирования проекта на самом верху.



Как бы вы настроили свою среду для достижения этого?

672   3  

3 ответов:

Это хорошее решение для системы сборки, мое предложение:

  1. ваш текущий Дженкинс работает как master CI (вероятно, запущен пользователем jenkins)
  2. создайте другого пользователя на той же машине или другой машине для работы в режиме Jenkins slave
    • Jenkins slave может быть вызван из Jenkins master, и он может использовать другого пользователя, такого как vagrant, у которого было разрешение и среда для vagrant, поэтому он не будет мешать оригинальному мастеру jenkins сервер
    • создайте свою базовую коробку vagrant, затем ее можно повторно использовать для ускорения развертывания
  3. большая часть информации об установке (пакеты) может управляться марионеткой (или шеф-поваром) для загрузки в ваш ящик виртуальной машины.

возможно, вы можете взглянуть на veewee, который может создать бродячую коробку на лету.

здесь сделать CI проще с Дженкинс CI и Бродяга для моего руководства для этого предложение.

вы можете попробовать залетный плагин для Jenkins который в настоящее время поддерживает Jenkins CD 1.532.3

вы можете увидеть демо этого плагина работает на http://unethicalblogger.com/2012/03/13/vagrant-plugin-in-action.html

лично я бы предложил использовать Hashicorp Packer для создания ваших коробок Vagrant для разработчиков, а затем использовать его для вывода изображения Docker или AWS или OpenStack, которое вы можете запустить в своей системе CI. Vagrant-это потрясающий инструмент, но накладные расходы виртуальных машин могут быть немного высокими для системы CI, чтобы постоянно вращать их вверх и вниз, особенно если вы хотите очень быструю обратную связь.

на бывшем клиенте мы в основном загрузили бродячие машины один раз с системой, а затем побежали Docker / virtualenv строит внутри этих виртуальных машин, и мы периодически уничтожали их, когда было крупное обновление или проблема с неправильным поведением среды.

https://www.packer.io/docs/builders/openstack.html

Comments

    Ничего не найдено.