Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich muss in einer fremden und sehr restriktiven Windows Umgebung das Deployment mehrerer Webanwendungen umbauen. Die Anwendungen sollen von Windows-Servern in eine Docker-Kubernetes-Umgebung "umziehen".
Nach einigem Kampf konnte ich eine Linux-VM als eine Art Sprungsystem etablieren. Auf dieser erzeuge ich Docker-Images und pushe diese dann in eine Rancher-Instanz. Das konnte ich soweit alles automatisieren.
Mein Problem ist das Maven-Build. Im Prinzip möchte ich, dass ein mvn deploy alles erledigt was nötig ist. Ich scheitere aber wieder einmal an der Unübersichtlichkeit von Maven. Ich habe mich an diese Anleitung zu halten: https://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html
Das funktioniert auch soweit. Das Ergebnis ist aber scheinbar ein Maven-Repository auf der Linux-VM. Das ist aber nicht was ich brauche. Ich hätte gern alles schön in bestimmte Ordner kopiert ohne viel Drumherum. Eine sinnvolle Versionierung usw. wird in den Projekten sowieso nicht betrieben. Ich müsste jetzt mit Scripten das Repo wieder auseinander nehmen um an die Jar's, War's. Ear's und andere Artefakte zu kommen.
Geht das nicht irgendwie besser? Im Prinzip brauche ich pro Projekt nur einen Ordner mit der aktuellen Version des Projektes. Dieser Ordner könnte dann evtl. noch Unterordner mit statischen Ressourcen enthalten. Den Rest würde ich einfach im Dockerfile regeln.
Die Seite, die Du da gezeigt hast, macht ja auch nach meinem Verständnis genau das: Deployment in ein Repository per SSH.
Wenn ich Dich richtig verstanden habe, dann willst Du aber einen Befehl ausführen? Da wären meine Gedanken:
a) Die Linux VM könnte ggf. das Build System sein - dann müsstest Du da nichts mehr kopieren und könntest alles direkt machen. Sprich: Du httest da dann einen Worker oder so für die ci/cd Pipeline.
b) Das Exec maven Plugin kann genutzt werden, um beliebige Dinge aufzurufen. Du kannst die gewünschten Dateien also auch per ssh Aufrufen kopieren oder so. https://www.mojohaus.org/exec-maven-plugin/
Das wären so die zwei Dinge, die mir hier direkt durch den Kopf gehen würden...
Danke für den Tipp. Ich trau mir das gar nicht so richtig zu sagen. Die Linux-VM hat zu wenig Ressourcen als Build-VM. Die ganze Umgebung, dort, ist ein Trauerfall.
Danke für den Tipp. Ich trau mir das gar nicht so richtig zu sagen. Die Linux-VM hat zu wenig Ressourcen als Build-VM. Die ganze Umgebung, dort, ist ein Trauerfall.
Ja, dann bleibt wohl nur b. Dabei ist die Frage, wie man vorgeht. Wenn es mit einem oder zwei Befehle getan ist, dann kann man die recht gut unter bringen. Wenn das deploy komplexer wird, dann würde ich ein deploy Script schreiben speziell für diesen Fall. Das ja etwas ganz spezifisches nur für diesen Rechner.
Damit das sonst nicht stört, könnte man das dann noch in ein Profil packen. Dann wird der Aufruf in der CI/CD Pipeline mit dem Profil gemacht und als Entwickler hast Du nicht das Problem, dass du da dann versehentlich das deploy Script aufrufst.
Ist nicht ganz sauber finde ich, weil Du ganz spezifische Dinge der Umgebung mit ins Projekt packst, die eben nicht universell sind. Ich habe es immer gerne so, dass ein Projekt mit minimalen Voraussetzungen überall läuft. Aber da es sich ja um ein internes Projekt handelt, sollte das ok sein.
(Und dann ist der Punkt auch wirklich eigentlich egal denke ich mal)
Das muss mal funktionieren, ohne dass ich da ständig mitwirken muss, auch mit Profilen. Ich habe das nur wegen der Kubernetes-Umgebung aufgebrummt bekommen. Ich habe es so ausgelegt, dass in der sogenannten Produktionsumgebung, noch ein Login + OK-Klick von einen Admin beim Rancher erforderlich ist. Damit hoffe ich Versehen zu vermeiden.