Technische Dokumentation Installation / Anpassung Version 2.0 Stand 02/2010 Inhaltsverzeichnis Copyright..........................................................................................................................................3 Umgebung........................................................................................................................................4 Zu installierende Komponente.....................................................................................................4 Datenbank........................................................................................................................................5 Beispiel: Oracle unter Debian......................................................................................................5 Anlegen von Tablespaces und dem Schema-Admin....................................................................8 Import- und Export-Pfad der Datenbank......................................................................................9 Application Server (J2EE)..............................................................................................................10 Sun JavaTM Application Server / GlassFish..............................................................................11 Realm....................................................................................................................................11 JDBC-Treiber........................................................................................................................12 Einstellung der sprachabhängigen Formatierung..................................................................13 JDBC Connection Pool..........................................................................................................14 JDBC Resource....................................................................................................................15 Web GUI Installation.............................................................................................................16 Verzeichnisdienst..........................................................................................................................17 OpenLDAP................................................................................................................................17 Active Directory..........................................................................................................................17 Novell eDirectory.......................................................................................................................17 Direkter Aufruf über Urls.................................................................................................................18 Dienstleistungsklassen..............................................................................................................19 Lizenz.............................................................................................................................................20 Index..............................................................................................................................................21 Copyright © Copyright 2005-2010 PrimeScale AG. All rights reserved. PrimeCMDB® und PrimeScale® sind eingetragene Marken der: PrimeScale AG Unternehmensberatung Benno-Strauß-Straße 5 90763 Fürth Deutschland Oracle ist eine eingetragene Marke der Oracle Corporation. Sun JavaTM System Application Server ist eine eingetragene Marke der Sun Corporation. Microsoft Active Directory ist eine eingetragene Marke der Microsoft Corporation. Novell eDirectory ist eine eingetragene Marke der Novell Corporation. Debian, Glassfish, Nagios, OpenLDAP sind Open Source System unter der GPL. Es wird darauf hingewiesen, dass die in der Dokumentation verwendeten Soft- und Hardwarebezeichnungen, sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken-, oder patentrechtlichem Schutz unterliegen. Seite 3 von 22 Technische Dokumentation © PrimeScale AG 2010 Umgebung Die PrimeCMDB ist als Multi-Tier Applikation entwickelt worden, die eine Trennung von Darstellung, Business-Logik und Datenhaltung realisiert: Oracle RDBMS PL/SQL JDBC Application Server J2EE 1.5 HTTP(S) Web-Client Für den Betrieb der PrimeCMDB werden folgende Komponenten gebraucht: Datenbank: Oracle RDBMS >= 9i XE, Standard oder Enterprise Edition Application Server: J2EE 1.5 compliant: Sun JavaTM Application Server 9 / GlassFish Verzeichnisdienst für die Authentifizierung: OpenLDAP, Microsoft Active Directory , eDirectory Zu installierende Komponente PrimeCMDB.war Seite 4 von 22 Web-Gui der PrimeCMDB, benötigt J2EE Application Server, Glassfish oder Sun Enterprise Applicationserver in der jeweils aktuellen Version. Technische Dokumentation © PrimeScale AG 2010 Datenbank Als Datenbank für die PrimeCMDB ist die Oracle RDBMS in der Version 9i / 10g / 11g notwendig. Die freie Version Oracle Express Edition wird im Rahmen ihrer Limitierungen ebenfalls unterstützt. Bei der Installation von Oracle RDBMS sei hier auf die entsprechende Dokumentation von Oracle (http://technet.oracle.com) verwiesen. Als Zeichensatz der Instanz ist UTF-8 (Unicode) Voraussetzung. Bei entsprechender Nutzung sollten der MAX_OPEN_CURSORS Parameter auf einen höheren Wert (z.B. 3000) eingestellt werden, da auch u.a. der Application Server Verbindungen cached. Beispiel: Oracle unter Debian Die Debian Distribution wird, obwohl im Serverumfeld sehr beliebt und verbreitet, von Oracle nicht offiziell für die Standard- und Enterprise-Version als Linux-Plattform unterstützt. Mit nachfolgend beschriebenen Anpassungen funktionieren Installation und Betrieb nach unserer Erfahrung dennoch reibungslos. Wir weisen jedoch ausdrücklich darauf hin, dass Oracle als Hersteller dazu keinen Support bietet. Eine Gewährleistung seitens PrimeScale ist ausgeschlossen. Ausgehend von einem Debian 5.0 (Lenny) Grundsystem werden folgende Pakete zusätzlich benötig: • • • • • • • ssh build-essentials lesstif2-dev rpm alien libaio1 libdb3 apt-get install ssh build-essential rpm lesstif2-dev alien libaio1 ... Das Package libdb3 ist in der Debian 5.0 Distribution nicht enthalten und muss von einer älteren Version bezogen und mit dpkg –i installiert werden Danach sind folgende symbolischen Links anzulegen: ln -s /usr/bin/awk /bin/awk ln -s /usr/bin/rpm /bin/rpm ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so ln -s /usr/bin/basename /bin/basename Seite 5 von 22 Technische Dokumentation © PrimeScale AG 2010 Anlegen von user/group: groupadd oinstall groupadd dba groupadd nobody useradd -g oinstall -G dba,nobody -d /home/oracle -s /bin/bash oracle passwd oracle mkdir /home/oracle chown -R oracle:oinstall /home/oracle chmod -R 775 /home/oracle mkdir /opt/oracle chown -R oracle:oinstall /opt/oracle chmod -R 775 /opt/oracle Einträge in der Datei /etc/sysctl.conf: kernel.shmall = 2097152 kernel.shmmax = 262144000 # bei 512 MB RAM (habler Speicher) kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 Danach mit /sbin/sysctl -p übernehmen. in die .bashrc bzw .profile von user oracle folgende Einträge setzen: # Oracle Environmaent export ORACLE_BASE=/opt/oracle export ORACLE_SID=CMDB export ORACLE_HOME=/opt/oracle Seite 6 von 22 Technische Dokumentation © PrimeScale AG 2010 export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib Als user oracle die Installation starten: ./runInstaller –ignoreSysPrereqs Zwei Warnungen zu rpm können ignoriert werden, ansonsten verläuft die Installation wie in der Dokumentation von Oracle beschrieben. In der Datei /etc/oratab die Instanz von :N auf :Y setzen Seite 7 von 22 Technische Dokumentation © PrimeScale AG 2010 Anlegen von Tablespaces und dem Schema-Admin Einrichten von 2 Tablespaces mit den Namen: • PRIMECMDB (>= 500MB, dynamisch wachsend empfohlen) und • PRIMECMDB_IDX (>= 300MB, dynamisch wachsend empfohlen) Im Tablespace PRIMECMDB_IDX werden alle Indexes abgelegt, so dass man durch die Verteilung auf andere physikalische Datenträger den Zugriff auch für sehr große Systeme skalieren kann. Zudem wird ein Admins-User für das Schema benötigt. Nachfolgend ein BeispielScript zum Anlegen: CREATE TABLESPACE "PRIMECMDB" LOGGING DATAFILE '/opt/oracle/oradata/CMDB/primecmdb.dbf' size 500M REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE TABLESPACE "PRIMECMDB_IDX" LOGGING DATAFILE '/opt/oracle/oradata/CMDB/primecmdb_idx.dbf' size 300M REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; CREATE USER CMADMIN IDENTIFIED BY ps DEFAULT TABLESPACE PRIMECMDB QUOTA UNLIMITED ON PRIMECMDB QUOTA UNLIMITED ON PRIMECMDB_IDX / GRANT / GRANT / GRANT / GRANT / GRANT / GRANT / GRANT / GRANT / GRANT / GRANT / GRANT / GRANT / GRANT / GRANT / GRANT / ALTER / CONNECT TO CMADMIN WITH ADMIN OPTION CREATE TABLE TO CMADMIN CREATE VIEW TO CMADMIN CREATE PROCEDURE TO CMADMIN CREATE TRIGGER TO CMADMIN CREATE SEQUENCE TO CMADMIN CREATE TYPE TO CMADMIN CREATE INDEXTYPE TO CMADMIN CREATE ROLE TO CMADMIN SCHEDULER_ADMIN TO CMADMIN EXECUTE ON UTL_FILE TO CMADMIN EXECUTE ON UTL_SMTP TO CMADMIN EXECUTE ON UTL_TCP TO CMADMIN SELECT ON SYS.DUAL TO CMADMIN WITH GRANT OPTION SELECT ON DBA_ROLE_PRIVS TO CMADMIN USER CMADMIN DEFAULT ROLE ALL Seite 8 von 22 Technische Dokumentation © PrimeScale AG 2010 Import- und Export-Pfad der Datenbank Einige Automaten der PrimeCMDB verwendet die Dateischnittstelle von Oracle. Damit diese funktioniert, muss im spfile von oracle folgender Eintrag exemplarisch erfolgen: utl_file='/data/primecmdb','/data/primecmdb/import','/data/primecmdb/export' Da der Parameter nicht dynamisch ist, muss die Datenbank danach neu gestartet werden. Oracle benötigt für jedes Verzeichnis, auch Unterverzeichnisse, diesen Eintrag, wenn darauf Leseund/oder Schreib-Operationen erfolgen sollen. Natürlich sollte der Oracle User oder zumindest seine Gruppe die ensprechende Berechtigung im Filesystem haben. Seite 9 von 22 Technische Dokumentation © PrimeScale AG 2010 Application Server (J2EE) Derzeit sind die Installationen unter folgenden Application Servern ausgetestet: • Sun JavaTM Application Server 9.x • GlassFish V2 (https://glassfish.dev.java.net/) Empfohlen wird der Einsatz von Sun JavaTM Application Server respektive GlassFish (Open Source und Basis des Sun Servers), da diese im Gegensatz zu anderen Java Application Servern derzeit eine vollständige J2EE 1.5 Implementation haben, die in aktuellen Versionen der PrimeCMDB benötigt wird. Zudem wird hiermit die Basis für unser zukünftig integriertes Identity Management gelegt. Seite 10 von 22 Technische Dokumentation © PrimeScale AG 2010 Sun JavaTM Application Server / GlassFish Der Application Server übernimmt die Session-Verwaltung, die Authentifizierung an einem LDAPServer (JAAS/Realm) und den Zugang zur Datenbank (JDBC). Realm Für die Authentifizierung an Active Directory wird dazu ein eigenes von PrimeScale entwickelter und optimierter "Custom Realm" installiert. Dies geschieht in folgenden Schritten. 1. Die jar-Datei PSRealm.jar in das Verzeichnis <appserver-installationpath>/domains/domain1/lib/classes kopieren. 2. Die Datei <appserver-installationpath>/domains/domain1/config/login.conf um folgenden Eintrag ergänzen: PSRealm { eu.primescale.psrealm.PSRealmLoginModule required; }; 3. In der Application Server Management Console im Bereich JVM-Settings/Path Settings unter Classpath Suffix den Eintrag ${com.sun.aas.instanceRoot}/lib/classes/PSRealm.jar vornehmen. 4. Den Application Server neu starten. Seite 11 von 22 Technische Dokumentation © PrimeScale AG 2010 5. Den Realm mit Parametern gemäß folgendem Beispiel einrichten: Dabei ist darauf zu achten, dass die Werte für den Realm (CMDBRealm), den Claas Name (eu.primescale.psrealm.PSRealm) und den Parameter jaas-context (PSRealm) notwendig und in gleicher Schreibweise eingetragen werden müssen. Der Parameter uid-name legt den LDAP-Schlüssel für die Auswahl des Users fest (normalerweise: uid, unter MS Active Directory: sAMAccountName). JDBC-Treiber Der Oracle JDBC-Treiber (ojdbc5.jar) muss in das Verzeichnis <appserver-installationpath>/lib/ext des Application Servers kopiert werden. (domain) Danach sind folgende Anpassungen im Application Server mittels Admin Console notwendig: Seite 12 von 22 Technische Dokumentation © PrimeScale AG 2010 Einstellung der sprachabhängigen Formatierung Um die richtigen Währungssymbole und Zahlenformate unabhängig vom Betriebssystem darzustellen, müssen im Applikationserver folgende Einstellungen vorgenommen werden: Seite 13 von 22 Technische Dokumentation © PrimeScale AG 2010 JDBC Connection Pool Für die Datenbankkommunikation wird zunächst ein JDBC-Connection Pool angelegt: Nachfolgend die Konfigurationsdaten: Seite 14 von 22 Technische Dokumentation © PrimeScale AG 2010 JDBC Resource Für den Programmzugriff wird dann die JDBC-Ressource definiert: Seite 15 von 22 Technische Dokumentation © PrimeScale AG 2010 Web GUI Installation Die WAR-Datei PrimeCMDB.war wird über die Sun JavaTM Application Server/GlassFish Admin Console "installiert": Der "Context Root" von PrimeCMDB.war sollte dabei auf /PrimeCMDB stehen und der "Context Root" von PrimeCMDB-Attachements.war auf /PrimeCMDB-Attachements. Die CMDB wird über den Server-URL aufgerufen, z.B. : http://myserver.mydomain.de:8080/PrimeCMDB/ oder mit SSL-Verschlüsselung (Zertifikat notwendig): https://myserver.mydomain.de:8181/PrimeCMDB/ Seite 16 von 22 Technische Dokumentation © PrimeScale AG 2010 Verzeichnisdienst Derzeit kann für die Authorisierung der Anwender des Web-Clients jeder beliebige LDAP-Dienst hergenommen werden. Z.B. MS Active Directory, Novell eDirectory, Sun Directory und OpenLDAP. OpenLDAP Eine Authentifizierung gegen OpenLDAP funktioniert problemlos mit entsprechender Einstellung des Glassfish / Sun JavaTM Application Server. Es wird zusätzlich der User (primecmdb) benötigt. Dieser User muss nur für rein lesende Operationen (Directory Browsing) angelegt werden und braucht außer dem Recht sich anmelden und browsen zu dürfen keine weiteren speziellen Rechte. Active Directory Für die Anmeldung und den Abgleich mit Active Directory wird ein User (primecmdb) benötigt. Dieser User muss nur für rein lesende Operation (Directory Browsing) angelegt werden und braucht außer dem Recht sich anmelden und browsen zu dürfen keine weiteren speziellen Rechte. Wird eine schreibende Kopplung in das Active Directory eingerichtet, so muss die Kennung mit enstsprechenden Rechten (Directory Admin) ausgestattet werden. Aus Gründen der Sicherheit empfiehlt sich eine verschlüsselte Verbindung zwischen dem Server der installierten PrimeCMDB-Server und dem Active Directory. Novell eDirectory Für die Anmeldung gegen Novell eDirectory wird ein User (primecmdb) benötigt. Dieser User muss nur für rein lesende Operation (Directory Browsing) angelegt werden und braucht außer dem Recht sich anmelden und browsen zu dürfen keine weiteren speziellen Rechte. Seite 17 von 22 Technische Dokumentation © PrimeScale AG 2010 Direkter Aufruf über Urls Tickets und Projekte können auch direkt über Urls aufgerufen werden. Die Authentifizierung kann damit alledings nicht umgangen werden. Beispiel: http://myserver.mydomain.de:8080/PrimeCMDB?Ticket=32 bzw. http://myserver.mydomain.de:8080/PrimeCMDB?Project=1000 Seite 18 von 22 Technische Dokumentation © PrimeScale AG 2010 Dienstleistungsklassen Dienstleistungsklassen sind für die Abrechnung vorgegeben. Während der Name (SERVICECATEGORY) verändert werden kann, muss die ID als Bezug fest eingestellt bleiben. Die Erweiterung von Dienstleistungsklassen kann aufgrund ihrer komplexen Kausalität nur durch Programmierung (PL/SQL / Package: pkClearing) erfolgen. ID 1 2 3 4 5 6 7 8 9 DIENSTLEISTUNGSKLASSE Aufträge Komponentenklasse TK-Klasse Applikation Projekt Kennungen Projekt-LW Gruppen-LW Home-LW Seite 19 von 22 Technische Dokumentation © PrimeScale AG 2010 Lizenz Die PrimeCMDB und alle mitgelieferten Komponenten sind, sofern nicht explizit ausgeschlossen, unter GPL V3 lizensiert. Seite 20 von 22 Technische Dokumentation © PrimeScale AG 2010 Index A Active Directory..........................................................................................................................4, 17 Anlegen von Tablespace..................................................................................................................8 Application Server Management Console......................................................................................11 C Connection Pool.............................................................................................................................14 Context Root..................................................................................................................................16 D Datenbank........................................................................................................................................5 Debian..............................................................................................................................................5 G GlassFish.............................................................................................................................4, 10, 11 J J2EE...............................................................................................................................................10 JDBC............................................................................................................................11, 12, 14, 15 JVM..........................................................................................................................................11, 13 L LDAP..............................................................................................................................................17 M Microsoft Active Directory...........................................................................................................4, 17 N Nagios..............................................................................................................................................3 Novell eDirectory............................................................................................................................17 O Oracle.........................................................................................................................4, 5, 6, 7, 9, 12 P Parameter..................................................................................................................................9, 18 PrimeCMDB................................................................................................................4, 9, 10, 16, 17 PrimeCMDB.war.............................................................................................................................16 S Sun JavaTM Application Server ................................................................................................4, 10 T Tablespace.......................................................................................................................................8 Tablespaces.....................................................................................................................................8 V Verzeichnisdienst.............................................................................................................................4 W Seite 21 von 22 Technische Dokumentation © PrimeScale AG 2010 WAR-Datei.....................................................................................................................................16 Seite 22 von 22 Technische Dokumentation © PrimeScale AG 2010