Masz projekt, który ma pewne wymagania dotyczące oprogramowania do uruchomienia (np. Konkretna wersja Apache, wersja PHP, instancja bazy danych MySQL i kilka innych programów).
Odkryłeś już Vagranta , więc Twoje środowisko wirtualne jest już skonfigurowane. Możesz tworzyć pudełka z plików konfiguracyjnych i książek kucharskich.
Zrozumiałeś również zalety systemu ciągłej integracji, takiego jak Jenkins .
Teraz chciałbyś połączyć te dwa światy (Vagrant i Jenkins), aby uzyskać idealne środowisko ciągłej integracji. Mówiąc dokładniej, nie chciałbyś instalować oprogramowania wymaganego przez projekt na maszynie z systemem Jenkins, ale chciałbyś użyć środowiska wirtualnego dostarczonego przez Vagrant do okresowego budowania projektu na jego szczycie. Oprogramowanie CI (Jenkins) zbuduje dla Ciebie Vagrant box, a następnie zbuduje i przetestuje Twój projekt.
Jak skonfigurowałbyś swoje środowisko, aby to osiągnąć?
źródło
Odpowiedzi:
to dobre rozwiązanie dla systemu budowania, moja sugestia:
Prawdopodobnie możesz rzucić okiem na veewee , który może tworzyć pudełko włóczęgów w locie.
Oto przewodnik Ułatw CI dzięki Jenkins CI i Vagrant dla moich wskazówek dotyczących tej sugestii.
źródło
Możesz wypróbować wtyczkę Vagrant dla Jenkinsa, która obecnie obsługuje Jenkins CD 1.532.3
Możesz zobaczyć demo tej wtyczki działającej pod adresem http://unethicalblogger.com/2012/03/13/vagrant-plugin-in-action.html
źródło
Osobiście sugerowałbym użycie Hashicorp Packera do zbudowania pudeł Vagrant dla programistów, a następnie użycie go do wygenerowania obrazu Dockera, AWS lub OpenStack, który można uruchomić w swoim systemie CI. Vagrant to niesamowite narzędzie, ale narzut maszyn wirtualnych może być trochę wysoki dla systemu CI, aby stale je zwiększać i zmniejszać, szczególnie jeśli chcesz naprawdę szybkiej informacji zwrotnej.
Na byłym kliencie po prostu raz uruchomiliśmy maszyny Vagrant z systemem, a następnie uruchomiliśmy kompilacje Dockera / virtualenv wewnątrz tych maszyn wirtualnych i okresowo je niszczyliśmy, gdy nastąpiła poważna aktualizacja lub problem z nieprawidłowym zachowaniem środowiska.
https://www.packer.io/docs/builders/openstack.html
źródło