Sie haben ein Projekt, für das einige SW-Anforderungen ausgeführt werden müssen (z. B. eine bestimmte Version von Apache, eine Version von PHP, eine Instanz einer MySQL-Datenbank und einige andere Softwareteile).
Sie haben Vagrant bereits entdeckt , sodass Ihre virtuelle Umgebung vollständig eingerichtet ist. Sie können Boxen aus Ihren Konfigurationsdateien und Kochbüchern erstellen.
Sie haben auch die Vorteile eines Continuous Integration-Systems wie Jenkins verstanden .
Jetzt möchten Sie diese beiden Welten (Vagrant und Jenkins) kombinieren, um die perfekte kontinuierliche Integrationsumgebung zu erhalten. Um genauer zu sein, möchten Sie die für Ihr Projekt erforderliche Software nicht auf dem Computer installieren, auf dem Jenkins ausgeführt wird, aber Sie möchten die von Vagrant bereitgestellte virtuelle Umgebung verwenden, um Ihr Projekt regelmäßig darauf aufzubauen. Die CI-Software (Jenkins) erstellt die Vagrant-Box für Sie und erstellt und testet Ihr Projekt darüber.
Wie würden Sie Ihre Umgebung einrichten, um dies zu erreichen?
quelle
Antworten:
Es ist eine gute Lösung für das Build-System, mein Vorschlag:
Wahrscheinlich können Sie sich veewee ansehen , wodurch im laufenden Betrieb eine Vagabundkiste entstehen kann.
Hier ist das Make CI mit Jenkins CI und Vagrant für meine Richtlinie für diesen Vorschlag.
quelle
Sie können das Vagrant Plugin für Jenkins ausprobieren, das derzeit Jenkins CD 1.532.3 unterstützt
Eine Demo dieses Plugins finden Sie unter http://unethicalblogger.com/2012/03/13/vagrant-plugin-in-action.html
quelle
Persönlich würde ich vorschlagen, Hashicorp Packer zu verwenden, um Ihre Vagrant-Boxen für Entwickler zu erstellen, und dann auch ein Docker- oder AWS- oder OpenStack-Image auszugeben, das Sie auf Ihrem CI-System ausführen können. Vagrant ist ein großartiges Tool, aber der Overhead von VMs kann für ein CI-System etwas hoch sein, um sie ständig auf und ab zu drehen, insbesondere wenn Sie wirklich schnelles Feedback wünschen.
Bei einem früheren Client haben wir die Vagrant-Maschinen im Grunde einmal mit dem System gebootet und dann Docker / virtualenv-Builds innerhalb dieser VMs ausgeführt und sie regelmäßig zerstört, wenn ein größeres Upgrade oder ein Problem mit der Umgebung aufgetreten ist, die sich nicht richtig verhält.
https://www.packer.io/docs/builders/openstack.html
quelle