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?