2014-07-23 4 views
5

Für ein Team von Entwicklern ist es wichtig, dass jeder den Anwendungsserver einrichtet und konfiguriert. In unserem Fall verwenden wir websphere 8.5.Wie verteilt man die Websphere Server Konfiguration (Datenquellen, JMS, ...) auf mehrere Instanzen?

Ich suche nach einer einfachen Möglichkeit, dies zu tun. Normalerweise verwenden Sie das Profilverwaltungstool in WAS_HOME/bin/ProfileManagement und dieses Tool funktioniert sehr gut. Aber nach der Installation des Websphere-Servers muss man noch das Serverprofil konfigurieren - Datenquellen, JMS-Queues, Busse, Variablen und so weiter. Daher dachte ich, es wäre schön, wenn diese Konfigurationen auf ein bestehendes Profil angewendet werden könnten.

Mein erster Versuch war nur ein Profil konfigurieren und dann eine Konfigurationssicherung

%WAS_HOME%/bin/backupConfig.bat 

verwenden, stellen aber die Konfiguration enthält z.B. der Hostname und andere vom Host abhängige Konfigurationen. Das Tool backupConfig.bat ist also nicht das, wonach ich suche.

Der nächste Gedanke, der mir einfiel, ist, dass ich vielleicht ein spezielles profileTemplate erstellen könnte. Damit andere das Profilverwaltungstool verwenden und diese Vorlage verwenden können. Aber die Template-Struktur scheint nicht für die Anpassung gemacht zu werden. Viele Dateien und fast keine Dokumentation können gefunden werden, wie man eine eigene Profilvorlage erstellt.

So stieß ich auf die Augment-Vorlagen. Diese Vorlage wird (wie der Name schon sagt) verwendet, um einem vorhandenen Profil eine spezifische Konfiguration hinzuzufügen. Ich habe eine Menge Dokumentation darüber gefunden, wie man eine Erweiterung auf ein bestehendes Profil anwenden kann, aber keine Dokumentation, wie man eine Erweiterung erstellt.

Endlich denke ich, dass es eine Möglichkeit geben muss, Websphere-Datenquellen, Busse, JMS usw. zu exportieren und sie auf andere Profile anzuwenden, weil das Operationsteam in sehr großen Installationen diese Fähigkeit haben muss.

Ich weiß, dass ich Container-spezifische Deskriptoren zum EAR hinzufügen kann. Z.B. META-INF/ibmconfig/cells/defaultCell/applications/defaultApp/resources.xml. Ich möchte jedoch keine umweltspezifischen EAR-Dateien erstellen, da diese unsere Builds mit der Infrastruktur verbinden und daher bei jeder Änderung der Infrastruktur, z. Hostnamen, IPs, Passwörter.

Kann jemand die Verteilung von Datenquelle, Bussen, JMS, etc. zu mehreren websphere Installationen handhaben?

Antwort

3

Zusätzlich zu den wsadmin-Skripten, die für diese Art von Aufgaben sehr gut sind, würde ich eine eigenschaftsbasierte Konfiguration vorschlagen. Es könnte für Sie nützlicher sein, da es ermöglicht, viele Konfigurationsobjekte gleichzeitig zu exportieren und sie dann auf verschiedene Umgebungen anzuwenden. Es ist auch etwas einfacher, da Sie anstelle von jython-Skripten einfache Textdateien verwenden.

Properties-Datei-basierte Konfiguration ermöglicht Ihnen:

  • Extrahieren von Daten aus dem Konfigurations-Repository Eigenschaften Dateien zu erstellen.
  • Aktualisieren Sie eine Eigenschaftendatei, um die Konfiguration zu bearbeiten, da benötigt wird.
  • Wenden Sie die aktualisierten Daten in der Eigenschaftendatei auf ein Zielkonfigurations-Repository an.

Weitere Details hier:
Properties-based configuration
Infocenter documentation
Education assistant

+1

Danke, ich exportiert die komplette Konfiguration und jetzt versuche ich es in ein anderes Profil zu importieren. Einige Konfigurationen funktionierten, aber einige verursachen Fehler. Ich werde das in den nächsten Tagen untersuchen. –

0

Ich erinnerte mich nur an das wsadmin-Tool und denke, es ist der beste Weg, meine Anforderungen zu implementieren.

Glücklicherweise bietet IBM sample scripts, die Ihnen zeigen, wie Sie Datenquellen erstellen oder mit jython oder jacl-Skripten ändern.

Ein Beispiel, wie Datenquellen zu schaffen, zum Beispiel in der Administration scripts (1-12) -- Jython version (Datei ex7.py im zip)

hoffe, das hilft anderen, die die gleiche oder eine similay Frage gefunden werden.

1

Ich empfehle Ihnen, wsadmin shell scripting zu verwenden und ein Skript für die Ressourcenerstellung zu erstellen. Ein Bonus ist, dass Sie es direkt von RAD ausführen können (Rechtsklick Ausführen als -> Administratives Skript).

Dies ist das komplette Beispiel in Jython geschrieben für JDBC Ressourcenerstellung zusammen mit JAAS-Anmeldeinformationen (Anmerkung: Ich bin mit Oracle Database, könnte Ihr Setup auf Datenbank abhängig unterschiedlich seien Sie verwenden):

cell=AdminConfig.showAttribute(AdminConfig.list("Cell"), "name") 
node=AdminConfig.showAttribute(AdminConfig.list("Node"), "name") 

#Add JAAS credentials 
print "Adding JAAS credentials" 
security = AdminConfig.getid('/Cell:'+cell+'/Security:/') 
alias = ['alias', node+'/dbUser'] 
userid = ['userId', 'DBUSER'] 
password = ['password', 'PASSWORD'] 
jaasAttrs = [alias, userid, password] 
AdminConfig.create('JAASAuthData', security, jaasAttrs) 
AdminConfig.save() 

#Add JDBC jar path 
print "Adding JDBC jar path" 
AdminTask.setVariable('[-variableName ORACLE_JDBC_DRIVER_PATH -variableValue ${WAS_INSTALL_ROOT}/lib/ext -scope Cell='+cell+',Node='+node+']') 
AdminConfig.save() 

#JDBC Provider print "Adding JDBC Provider" 
AdminTask.createJDBCProvider('[-scope Node='+node+',Server=server1 -databaseType Oracle -providerType "Oracle JDBC Driver" -implementationType "Connection pool data source" -name "Oracle JDBC Driver" -description "Oracle JDBC Driver-compliant Provider." -classpath ${ORACLE_JDBC_DRIVER_PATH}/ojdbc6.jar]') 
AdminConfig.save() 

#JDBC Datasources print "Creating Datasource" 
AdminJDBC.createDataSourceAtScope("Node="+node+",Server=server1", "Oracle JDBC Driver", "test", "jdbc/test", "com.ibm.websphere.rsadapter.Oracle11gDataStoreHelper", "jdbc:oracle:thin:@10.0.0.1:1521:TEST", [['componentManagedAuthenticationAlias', node+'/test'], ['containerManagedPersistence', 'true']]) 
AdminConfig.save() 
Verwandte Themen