HostCreator Templates  
 
HostCreator Templates
PDF
 
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

Der HostCreator bzw. der Generator der Konfiguration benutzt Vorlagendateien, sogenannte Templates. Diese Templates befinden sich im Verzeichnis ${centaurus.base}/templates/hostcreator.
Sie können beliebig viele Templates dort hinzufügen und im HostCreator-Client das gewünschte Template auswählen.

In einem solchen Template befindet sich die komplette Konfiguration inklusive einiger Platzhalter, die weiter unten beschrieben werden.



Das Standard-Template

Im HostCreator ist schon ein Template enthalten, das die Konfiguration für einen Host inklusive Logger, AccessLogValve und Manager-Applikation enthält.

<Host 
	name="${name}" 
	appBase="${appBase}" 
	unpackWARs="true" 
	>
	${alias}
	<Listener 
		className="de.centaurus.platform.plugins.security.SecurityWatcherLifecycleListener"
	/>
	<Logger 
		className="org.apache.catalina.logger.FileLogger" 
		directory="logs/${name}" 
		prefix="logger." 
		suffix=".log" 
		timestamp="true"
	/>
	<Valve 
		className="org.apache.catalina.valves.AccessLogValve" 
		directory="logs/${name}" 
		fileDateFormat="yyyy-MM-dd" 
		prefix="access." 
		suffix=".log"
	/>
	<Context 
		displayName="Manager Application" 
		docBase="${manager.path}" 
		path="/manager" 
		privileged="true">
		<Realm 
			className="org.apache.catalina.realm.MemoryRealm" 
			pathname="${manager.user.path}"
		/>
	</Context> 
</Host>
      			

Dieses Template ist so wie es ist direkt verwendbar. Wenn Sie es anpassen müssen, damit es in Ihr System integriert werden kann lesen Sie den nächsten Abschnitt "Ein Template anpassen".

In jedem Template sind Platzhalter verfügbar:

${name} Der Name des Hosts. Dies muss ein gültiger Hostname sein.
${appBase} Das Verzeichnis, in dem die Webanwendungen installiert werden.
${alias} Dieser Platzhalter wird mit den einzelnen Alias, die Sie im HostCrator-Client angegeben haben, ersetzt.
${manager.path} Der Pfad zu der zentral installierten Manager-Anwendung.
Dieser Pfad wird automatisch vom Generator erzeugt.
${manager.user.path} Der Pfad zu der XML-Datei mit den Logins.
Dieser Pfad wird automatisch vom Generator erzeugt.


Ein Template anpassen

Ein Template für den HostCreator besteht grundsätzlich aus den gleichen Konfigurationselementen wie Sie sie auch in der server.xml finden. Hinzu kommen noch Kontexte, wenn Sie Webanwendungen mit installieren wollen.

Sie haben die Möglichkeit, ein bestehendes Template zu verändern oder ein komplett neues Template zu erzeugen. In beiden Fällen muss die Dateiendung aber .xml lauten.

Wenn im Installationspfad des Hosts bereits Webanwendungen existieren, dann werden diese automatisch mit installiert, wenn Sie in der Host-Konfiguration die Parameter autodeploy=true gesetzt haben. Diese Einstellung ist der Standard und greift auch, wenn Sie diesen Parameter nicht explizit konfigurieren.

Nun möchten wir Ihnen ein paar Ideen geben, was Sie auf Ihre Bedürfnisse anpassen können:

  1. Realm auf HostBasis
    Dieser Realm gilt dann für alle installierten Webanwendungen.
  2. MemoryRealm in JDBCRealm bzw. DatasourceRealm ändern
    Somit können Sie bestehende Kundenlogins weiterverwenden.
  3. Logger und Valves auf Kontextbasis
    Das macht unter Umständen Sinn, wenn eine Anwendung besonders sicherheitsrelevant ist.
    Diese Konfiguration sollten Sie auch in die META-INF/context.xml der Webanwendung schreiben.