Dies ist ein in Java geschriebenes Webprojekt.
Also schreibe ich das Build- und das Deploy-Skript. Um den Build zu erstellen, habe ich ant verwendet. Der kontinuierliche Aufbau erfolgt mit Jenkins.
Der Build generiert 3 verschiedene Artefakte:
- Die Kriegsakte
- Ein Reißverschluss mit Layouts
- Ein Reißverschluss mit Bildern
So weit, so gut, aber jetzt muss ich das Bereitstellungsskript schreiben, das sollte:
- Stellen Sie den War (Artefakt 1) auf dem Tomcat bereit, der auf Server 1 ausgeführt wird
- Platzieren Sie das Artefakt 2 auf Server 1 in einem bestimmten Verzeichnis
- Platzieren Sie das Artefakt 3 auf Server 2 in einem bestimmten Verzeichnis
Ich sprach mit meinem Kollegen und er sagte, dass wir auch ein Artefakt (möglicherweise deploy.xml ) generieren sollten , das diese Artefakte bereitstellt , wenn sie auf dem richtigen Server platziert werden.
Es würde also ein anderes Skript geben, das:
- Laden Sie die Jenkins-Artefakte herunter
- scp auf jeden Server und platziere die deploy.xml dort
- Rufen Sie die Datei deploy.xml remote auf
Was mich ein wenig unangenehm macht, ist der Vorgang, die deploy.xml als Build-Artefakt zu haben. Die Motivation dahinter wäre, ein Deployment durchführen zu können, ohne auf die VCS-Repositorys zugreifen zu müssen, sodass ein Build in sich geschlossen wäre, dh, jeder Build könnte nur mit dem, was von Jenkins generiert wurde, in Produktion gehen.
Wo sollen die Bereitstellungsskripte abgelegt werden? Sollten sie nur im VCS sein oder sollten sie auch Artefakte bauen?
quelle
Antworten:
Meine Erfahrung ist, dass alles, was automatisiert werden kann, sein sollte. Wenn Sie es als Schritt 1, Schritt 2, ... beschreiben können, sollte es ein Skript sein. Wenn das Skript automatisch generiert werden kann, um Build-spezifische Informationen (z. B. Revisions-Tag) zu enthalten, sollten Sie dies tun. Dies geschieht nicht, um faul zu sein, sondern um vorhersehbar und reproduzierbar zu sein .
Hinweis: Sie sollten auch ein automatisch generiertes Zurücksetzungsskript haben , das von jedem im Team verwendet werden kann, falls das automatisch generierte Bereitstellungsskript verrückt wird und den Produktionsserver überflüssig macht.
quelle
Alles, was Peter Rowell schrieb, ist richtig, außerdem würde ich:
Für die Bereitstellungsskriptdatei
Für den Bereitstellungsprozess:
Dies hängt vielmehr von Ihrem Prozess ab und davon, wie Sie mit Bereitstellungen umgehen möchten.
quelle