У вас есть проект, в котором есть некоторые требования к программному обеспечению для запуска (например: конкретная версия Apache, версия PHP, экземпляр базы данных MySQL и несколько других программных продуктов).
Вы уже открыли для себя Vagrant , так что ваша виртуальная среда полностью настроена. Вы можете создавать ящики из файлов конфигурации и кулинарных книг.
Вы также поняли преимущества системы непрерывной интеграции, такой как Jenkins .
Теперь вы хотите объединить эти два мира (Vagrant и Jenkins), чтобы получить идеальную среду непрерывной интеграции. Чтобы быть более конкретным, вы не хотели бы устанавливать программное обеспечение, необходимое для вашего проекта, на машине, на которой работает Jenkins, но вы хотели бы использовать виртуальную среду, предоставляемую Vagrant, для периодической сборки вашего проекта поверх нее. Программное обеспечение CI (Jenkins) построит для вас Vagrant box, а затем создаст и протестирует ваш проект поверх него.
Как бы вы настроили свою среду для этого?
источник
Ответы:
это хорошее решение для системы сборки, мое предложение:
Наверное, вы можете взглянуть на veewee , которое может создавать бродячие коробки на лету.
Вот как сделать CI проще с Jenkins CI и Vagrant для моего руководства по этому предложению.
источник
Вы можете попробовать плагин Vagrant для 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, чтобы постоянно раскручивать их вверх и вниз, особенно если вам нужна действительно быстрая обратная связь.
У бывшего клиента мы в основном загружали машины Vagrant один раз вместе с системой, а затем запускали сборки Docker / virtualenv внутри этих виртуальных машин, и мы периодически уничтожали их, когда происходило серьезное обновление или проблема с некорректным поведением среды.
https://www.packer.io/docs/builders/openstack.html
источник