Das HostCreator-Plugin  
 
Das HostCreator-Plugin
Überblick über das HostCreator-PluginPDF
 
Von:
Thorsten Kamann  <thorsten.kamann@planetes.de>
Peter Roßbach  <pr@objektpark.de>
 
Der HostCreator sorgt für die dynamische Übernahme neuer virtueller Hosts in einen bestehenden Service.

Inhalt:


Die Lösung zur dynamischen Host Integration in den Tomcat

In einer Hosting-Umgebung - und auch in einer Entwicklungsumgebung - ist eine der häufigsten Aufgaben das Erstellen eines neuen Hosts mit seinen Standard-Anwendungen.

Bisher war dieses nur mit einer Menge von Mausklicks oder schlimmer noch mit einem Restart des kompletten Servers verbunden.
Der Alptraum eines jeden Hosters: Der Server für verschiedene Kunden ist eine Zeit nicht erreichbar.
Es gibt Lösungen, die auf Ant basieren, aber nicht besonders intuitiv sind und auch Lösungen, die die server.xml direkt verändern und somit einen kompletten Neustart erfordern. Nur via JMX wäre ein dynamischer Eingriff möglich, aber das Interface ist nicht ausreichend für alle erforderlichen Aktionen.

Um diese Nachteile zu vermeiden gibt es für die Centaurus-Platform den HostCreator.



HostCreator eine Übersicht
Klicken Sie auf das Bild für die Vollansicht



Der HostCreator in Aktion

Der HostCreator ist als Plugin verfügbar. Nach der Installation ist der HostCreator als Listener verfügbar und überwacht die Services (Engines)-Verzeichnisse der Centaurus-Platform, die sich im Verzeichnis ${centaurus.base}/conf befinden.

Erscheint dort eine ${hostname}.xml, dann wird diese verarbeitet und der Host, die enthaltenen Kontexte und sämtliche zusätzlich definierte Konfigurationen installiert.
Dazu muss der Server natürlich nicht neu gestartet werden.



Einen neuen Host erzeugen

Damit Sie nicht alles von Hand machen müssen beinhaltet der HostCreator natürlich ein Client-Programm. Dieses können Sie sowohl auf einer Konsole wie auch in einer grafischen Umgebung benutzen.

Dazu rufen Sie folgendes Script auf: ${centaurus.base}/scripts/hostcreator/hostcreator.[sh|bat]



HostCreator Generator Werkzeug
Klicken Sie auf das Bild für die Vollansicht



Wenn Sie auf einer Konsole arbeiten müssen Sie dem Programmaufruf noch die entsprechenden Parameter mitgeben:

service Der Name des Services, in dem der Host installiert werden soll (default: Centaurus-Public)
host Der Name des Hosts. Dies muss ein gültiger Hostname sein.
appbase Das Verzeichnis, in dem die Webanwendungen installiert werden sollen.
alias Sie können eine durch Komma getrennte Liste mit Alias-Namen übergeben. Unter diesen Aliasnamen ist der Host dann zusätzlich erreichbar.
logins Wenn Sie den Standard-Realm benutzen, den wir in dem mitgelieferten Template voreingestellt haben, können Sie mit diesem Parameter eine Komma getrennte Liste mit Loginnamen übergeben. Das Format eines Logins sieht so aus:
Benutzername:Passwort
Mit diesem Login können Sie sich dann in die Manageranwendung einloggen.
template Geben Sie hier den Namen des Templates aus dem Verzeichnis ${centaurus.base}/templates/hostcreator ein (default: host.xml).
console Mit diesem Parameter können Sie den Konsolen-Modus erzwingen. Dies ist sinnvoll, wenn Sie auf einem Server sind, der keine grafische Umgebung bietet oder Sie den Hostcreator in Ihre bestehende Umgebung (z.B. Cron-Jobs) integrieren möchten.
remove Entfernt den angegebenen Host.


Entfernen eines Hosts

Natürlich kommt es vor, dass man einen Host wieder entfernen möchte. Dies können Sie auch mit dem HostCreator machen. Beide Modi (GUI und Konsole) unterstützen dies. Sobald Sie im GUI-Modus den Namen des Hosts in das dafür vorgesehene Eingabefeld eingegeben haben, erscheint eine Entfernen-Schlaftfläche.
Im Konsolenmodus geben Sie einfach den Namen des Host, des Service (optional) und den Parameter -remove mit.

Der Generator erzeugt dann im Verzeichnis ${centaurus.base}/conf/{SERVICE_NAME} eine leere Datei (0 Byte) mit dem Namen {HOST_NAME}.xml.remove. Der HostCreator reagiert darauf und entfernt den Host. Natürlich wird ein Backup erzeugt. Damit Sie die Konfiguration komplett wiederherstellen wird der gesamte Inhalt des Verzeichnisses ${centaurus.base}/conf gesichert.
Sie finden das Backup in ${centaurus.base}/backup/conf{TIMESTAMP}.zip.



Beispiele für den Aufruf des HostCreators im Konsolenmodus
./hostcreator.sh -console -host host1.localhost -appbase /home/www/web3/webapps -alias www.host1.de -logins web3:hgsf65t

In diesem Beispiel installieren Sie den Host host1.localhost mit dem Verzeichnis /home/www/web3/webapps. Der HostCreator wird im Konsolenmodus ausgeführt.

hostcreator.bat -host host1.localhost -appbase /home/www/web3/webapps -alias www.host1.de -logins web3:hgsf65t

Dies ist das gleiche Beispiel wie oben, nur dass der HostCreator auf Windows im GUI-Modus ausgeführt wird.

./hostcreator.sh -console -host host1.localhost -remove

In diesem Beipiel entfernen Sie den Host host1.localhost.