Jak połączyć Vagranta z Jenkinsem, aby stworzyć idealne środowisko ciągłej integracji?

Masz projekt, który ma pewne wymagania SW do uruchomienia (np.: konkretną wersję Apache, wersję PHP, instancję bazy danych MySQL i kilka innych elementów oprogramowania).

Już odkryłeś Vagrant , więc Twoje wirtualne środowisko jest ustawione. 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 sprzętowego wymaganego przez twój projekt na maszynie z systemem Jenkins, ale chciałbyś użyć wirtualnego środowiska dostarczonego przez Vagrant, aby okresowo budować swój projekt na jego wierzchu. Oprogramowanie CI (Jenkins) zbuduje dla Ciebie pudełko Vagrant oraz zbuduje i przetestuje twój projekt na jego szczycie.

How would you skonfigurować środowisko, aby to osiągnąć?

Author: Roberto Aloi, 2011-08-04

3 answers

Jest to dobre rozwiązanie dla systemu budowania, moja sugestia:

  1. twój obecny jenkins działa jako master CI (prawdopodobnie uruchomiony przez użytkownika jenkins)
  2. Tworzenie innego użytkownika na tej samej maszynie lub innej maszynie do pracy w trybie slave jenkins
    • jenkins slave może być wywoływany z serwera jenkins master i może używać innego użytkownika, takiego jak vagrant, który miał uprawnienia i środowisko dla vagranta, dlatego nie będzie ingerował w oryginalny serwer główny jenkins
    • Stwórz swoją bazę vagrant box, a następnie może być ponownie użyty do przyspieszenia wdrożenia
  3. Większość informacji instalacyjnych (pakietów) może być zarządzana przez puppet (lub chef), aby załadować je do maszyny wirtualnej.

Prawdopodobnie możesz spojrzeć na veewee , które mogą tworzyć Vagrant box w locie.

Oto Make Ci easier with Jenkins CI and Vagrant for my guideline for this suggestion.

 32
Author: Larry Cai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-13 00:24:28

Możesz wypróbować wtyczkę Vagrant dla Jenkins, która obecnie obsługuje Jenkins CD 1.532.3

Możesz zobaczyć demo tej wtyczki działa w http://unethicalblogger.com/2012/03/13/vagrant-plugin-in-action.html

 12
Author: Christophe Furmaniak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-13 19:44:48

Osobiście sugerowałbym użycie Hashicorp Packer, aby zbudować swoje pudełka Vagrant dla programistów, a następnie użyć go do wygenerowania Dockera, AWS lub obrazu OpenStack, który można uruchomić na systemie CI. Vagrant to niesamowite narzędzie, ale obciążenie maszyn wirtualnych może być trochę wysokie, aby system CI stale obracał je w górę iw dół, zwłaszcza jeśli chcesz naprawdę szybko uzyskać informacje zwrotne.

U byłego klienta w zasadzie raz uruchomiliśmy maszyny Vagrant z systemem, a następnie uruchomiliśmy Docker / virtualenv kompilacji 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

 0
Author: dragon788,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-21 18:13:17