Deployment von Linux FS auf Windows Webserver
Author: rene_charbonnea
Publication Date: 5/5/2011 12:14
Hallo zusammen,
ich hätte mal wieder eine Frage:
Ich habe eine Frage/ein Problem zum Thema deployment. Wir haben mehrere FS Entwicklungsserver von welchen einer unter Linux und 2 unter Windows laufen.
Die Windows basierten Systeme werden hauptsächlich für Projekte verwendet bei denen wir mitten in der Entwicklung stecken und somit häufig getestet wird/werden muss. Die Linux Kiste ist dann eher für die Projekte die bereits abgschlossen sind und unsere eigenen Sites.
Die Server auf welche die Entwickler deployen (SAP Systeme) sind leider Windows basiert.
Bisher sieht die Konstellation wie folgt aus:
Projekt liegt auf einem der Windows FS Server.
In der Auftragsverwaltung sind manuelle Deployment Jobs ins "lokale Dateisystem" eingerichtet.
Allerdings gehen die in Wirklichkeit via \\testserver.domänenname\freigabenname auf den Windows basierten Testserver.
Das ganze funktioniert auch einwandfrei.
Wenn ich jetzt auf dem Testserver eine Freigabe für "JEDER" einrichte und darauf dem "User" (JEDER) Änderungsrechte (auf die Freigabe und dem Dateisystem)
gebe und dann ein deployment auf dem Linux FS Server einrichte, dann erhalte ich als Rückmeldung, das der Test erfolgreich war (SMBClient ist auf dem Linux Server eingerichtet).
Führe ich dann das deployment manuell aus, verläuft dies ebenfalls erfolgreich. Auf der Freigabe kommt jedoch nichts an.
Unser bisheriges Verfahren (Einrichtung eines statischen Mountpoints in der /etc/fstab und anschließendes deployment in das "lokale" Dateisystem) kann ich den Kollegen aus dem Frontend nicht zumuten. Das kann ich für unsere statischen Projekte weiter beibehalten, aber keinesfalls für die Entwicklungsprojekte.
Die Variante rsync+ssh ist zwar ganz nett und ein guter Ansatz, aber irgendwie unpraktisch. Denn auch hier muss eine Menge konfiguriert und eingestellt werden.
Allerdings brachte mich das auf eine Idee und hierfür bräuchte ich mal ein Feedback ob das möglich ist.
Mir schwebt folgendes Szenario in der Auftragsverwaltung vor:
- Generierung der Seite
- Aufruf eines Skriptes (mount Befehl; siehe unten)
- Deployment ins "lokale" Dateisystem
- Aufruf eines Skriptes (umount Befehl)
Damit müsste doch theoretisch alles abgedeckt sein.
Der Vorteil wäre, dass die Kollegen lediglich auf dem Testserver eine Freigabe einrichten müssten und einem Dienstkonto Berechtigungen geben müssten und 2 Parameter im "Mount Skript" anpassen (Freigabenname + Servername) müssten.
Auf dem Windows Testserver müsste nichts installiert/konfiguriert werden (außer eben der Freigabe) und ich muss den Kollegen keine Linux Kentnisse zumuten.
Wenn das möglich wäre könnte ich auch endlich unsere Windows FS Server abschalten... :smileyhappy:
Der Mount Befehl könnte/müsste so aussehen:
mount //<FQDN des Servers>/<Freigabenname> /mnt/<mountpoint> cifs username=<Domaene>\\<Username>,password=<Passwort>,dir_mode=0777,file_mode=0777,uid=101
Wenn man es noch schön macht definiert man irgendwo im Header ein paar Variablen, damit man nicht im gesamten Skript schauen muss welche Parameter man ändern kann/muss. Sowie sinnvollerweise eine Möglichkeit einen User (+Passwort?!) zu definieren der das Skript ausführt.
Da ich aber keine Ahnung von beanshell habe wollte ich Fragen ob das überhaupt grundsätzlich möglich ist. Falls ja, wie schwer wäre es denn wohl so ein Skript zu schreiben (plus ein umount Skript)?
Grüße aus Eschborn
René
Tags: 4.2r4, fs4.2r4
-
Author: rene_charbonnea - 6/6/2011 16:44
Hallo alle zusammen,
ich habe nun die "perfekte" Lösung für mein Problem gefunden.
Ich habe mir (von einem guten Freund und Linux/Java Guru) ein kleines Debian Paket schreiben lassen (ist nix
Debian spezifisches, hier ist aber die Installation am einfachsten!).
Es handelt sich dabei um 2 kleine C-Skripte die durch die 2 Beanshell Skripte (die in der Firstspirit GUI verwaltet werden)
angestoßen werden!
Sobald das Debian Paket (über "dpkg -L firstspirit-cifs-deploy_1.0-1_i386.deb" sieht man wo überall Daten abgelegt werden) installiert ist (Abhängigkeiten wie smbfs und cifs-utils werden über das Paket abgefangen!) muss nur noch zwei Skripte in der Auftragsverwaltung angelegt werden (am besten benennt man die auch mount bzw. umount). In den Eigenschaften der Skripte gibt man nun die notwendigen Parameter in der passenden Reihenfolge ein und weißt ihnen Werte zu.
Wenn das erledigt ist kann man den deploy auf einen "lokalen" Mountpoint ausführen. :smileyhappy:
Und fertig ist das deployment von Linux auf Windows...
Wenn Interesse besteht kann ich auch gerne eine saubere Doku in Form eine Blog Beitrags erstellen.
Ich gebe die Nutzung zu Testzwecken für jeden Interessierten frei.
Da ich das ganze bisher aber nur auf unserer eigenen Infrastruktur getestet habe (und keinen direkten Support leisten kann), kann ich (noch) nicht dazu raten das ganze in Produktivinstanzen zu nutzen/testen.
0
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
1 Kommentar