Installationsanleitung eSciDoc imeji CoNE
|
eSciDoc 1.2 und imeji Installations Tutorial Video vom Zuse Internet Archive der FU: http://www.zib.de/zuse/video
eSciDoc / JBOSS Security[edit]
Tuturial / Help - SecureJBoss4.2
https://www.escidoc.org/wiki/SecureJBoss4.2
JBoss behind an Apache Webserver
https://www.escidoc.org/wiki/JBossBehindWebserver
UsingMod_proxyWithJBoss
http://community.jboss.org/wiki/UsingModproxyWithJBoss
Apache Module mod_proxy
https://httpd.apache.org/docs/2.2/mod/mod_proxy.html
Securing the JMX Console and Web Console (HTTP)
http://community.jboss.org/wiki/SecureTheJmxConsole
General Info - Introduction - hosting applications with JBoss Application Server
http://chiralsoftware.com/linux-system-administration/jboss-server-deployment.seam
Security Warning for eSciDoc Infrastructure version 1.3 and 1.4
Because of an JBoss issue the JMX console is only secured for GET and POST requests although authenticated access is configured. An attacker could trigger arbitrary actions in the operating system.
Please secure your JMX console like described at https://access.redhat.com/kb/docs/DOC-30741
If you do not use the console for administrative purpose, you can alternatively disable the JMX console.
eSciDoc 1.4 auf Scientific Linux 64bit[edit]
Java Development Kit (JDK) von Sun installieren[edit]
Da Oracle nicht empfiehlt Javaversionen zu nutzen, die älter sind, als die aktuelle Version 7 (Stand November 2013), sollte java NICHT als root installiert werden.
Für escidoc wird ausdrücklich das JDK von Java Sun empfohlen.
Benötigt wird die aktuelle Version aus Java 6 (jdk-6u<version>-linux-x64.bin).
<version> meint die aktuelle Versionsnummer z.B. 45
Ein Downloadlink findet sich bei escidoc unter: https://www.escidoc.org/JSPWiki/en/InstallJavaForRelease1.4
!!!ACHTUNG!!! Java-Development-Kits, die älter sind als die aktuelle Version 7 (Stand November 2013), können NUR nach Registrierung bei Oracle (Emailadresse, Vollständiger Name, Institution, Beruf, Telefonnummer dienstl.) herunter geladen werden.
Glücklicherweise muss man keinen der angebotenen Newsletter abonnieren.
Das heruntergeladene .bin-File lässt sich mit der Kommandozweile wie folgt installieren:
sh jdk-6u<version>-linux-x64.bin
und allem zustimmen.
Anschließend den Ordner an einen geeigneteren Ort kopieren. Hierfür kann man sich z.B. einen Ordner im "home" Verzeichnis anlegen.
Wir wählen als Beispiel den Ordner "location": /home/<username>/location (hier soll später auch escidoc installiert werden).
Als nächstes sollte die Umgebungsvariable für das JDK konfiguriert werden:
Einen Editor starten
vim .bashrc (/home/<username>/.bashrc)
dann folgendes ans Ende der .bashrc kopieren:
# JAVA (JDK,JRE) export JAVA_HOME='/home/<username>/location/jdk1.6.0_<version>' PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
Speichern und schließen (:wq)
Danach müssen alle Kommandozeilen geschlossen werden, um die Einstellung zu übernehmen.
Die richtige Konfiguration kann mittels Java-Befehl getestet werden.
Dazu öffnet man eine Kommandozeile und trägt folgenden Befehl ein:
java -version
Es sollte nun z.B. folgendes ausgegeben werden:
java version "1.6.0_45" Java(TM) SE Runtime Environment (build 1.6.0_45-b06) Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
Falls der Befehl java -version das OpenJDK zurückgibt, muss das OpenJDK auf Java-Sun umgestellt werden.
Dies kann mit folgendem Befehl vorgenommen werden:
update-alternatives --config java
Danach sollte java -version die eigens installierte Java-Version zurückgeben.
JAVA ist installiert :)
PostgreSQL installieren[edit]
Es wird Version 8.4 oder höher benötigt: https://www.escidoc.org/JSPWiki/en/InstallPostgreSQLForRelease1.4
Unter Scientific Linux kann PostgreSQL mit YUM installiert werden. Es werden der PostgreSQL Server und Contrib benötigt.
(contrib wurde bei eSciDoc 1.2 benötigt - wir installieren es um eventuellen Problemen vorzubeugen.)
PostgreSQL + Server + Contrib installieren:
su yum install postgresql postgresql-server postgresql-contrib
PostgreSQL-DB initialisieren:
service postgresql initdb
Die Konfigurationsdatei postgresql.conf editieren:
vim /var/lib/pgsql/data/postgresql.conf #port = 5432 -> port = 5432 (kommentar weg)
Und speichern.
Die Konfigurationsdatei pg_hba.conf editieren:
vim /var/lib/pgsql/data/pg_hba.conf
Nach den einführenden Kommentaren sollte die Datei wie folgt aussehen:
# Database administrative login by UNIX sockets local all postgres ident # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
Und speichern.
Das Ersetzen von "ident" durch "md5" ermöglicht die Anmeldung mit einem md5-Passwort.
PostgreSQL-DB starten:
service postgresql start
und PostgreSQL testen:
su postgres psql \l (listet alle bestehenden datenbanken)
Wenn gewünscht, dann gleich das Postgres-root-Passwort ändern:
\password postgres dann passwort eintragen
PostgreSQL mit den gewünschten Optionen ist installiert :)
eSciDoc 1.4 installieren[edit]
Installer herunterladen (aktuell Release 1.4) von https://www.escidoc.org/JSPWiki/en/InstallationForRelease1.4
PostgreSQL sicherheitshalber neustarten:
su service postgresql restart
Hinweis: eSciDoc NICHT als root installieren!
(Ein potentieller Einbrecher über den JBoss Application Server hätte sonst root-Rechte.)
Installer ausführen mit:
java -jar escidoc-core-1.4.5-installer.jar
- Als Sprache kann Deutsch (deu) ausgewählt werden.
OK - Weiter
-
Ja, ich stimme diesen Lizenzvereinbarungen zu.
Weiter -
Installationsvoraussetzungen
Weiter -
Neue eSciDoc-Infrastruktur installieren
Weiter -
Rechnername: localhost
Portnummer: 8080
Weiter -
PostgreSQL
Weiter -
PostgreSQL-Datenbankverbindung
Die voreingestellten Werte beibehalten.
Weiter -
postgres (root-Passwort)
Weiter -
Datenbankbenutzer escidoc (ist der Nutzer für die neue Postgres-Datenbank)
Passwort eintragen
Weiter -
fedoraAdmin (Admin für Fedora, und ein weiterer PostgreSQL Benutzer, wird hauptsächlich intern benötigt)
Passwort eintragen
emailAdress: email (für Fehlermeldungen, Feld darf nicht leer sein, muss aber keine Adresse enthalten)
Weiter -
Verwende die JAVA_HOME Umgebungsvariable (vorgegebene Werte stimmen)
Weiter -
Installationspfad: /home/<username>/location/escidoc
Weiter -
Alles angehakt lassen
Weiter -
sysadmin (Hat Zugang zu allen Resourcen und kann Benutzer mit deren Rechten verwalten)
Passwort eintragen
Weiter -
inspector (read-only, für Infrastruktur-internes wie Indexierung)
Passwort eintragen
Weiter -
depositor (erstellen neuer Resourcen innerhalb der Infrastruktur - User für das meiste des Tagesgeschäfts)
Passwort eintragen
Weiter -
JBoss JMX-Console löschen?
Nein (wenn man sie noch benutzen möchte). -
JBoss-Benutzername: (Passwortgeschützter Zugriff auf JMX-Console des JBoss-Application-Servers)
Passwort eintragen
Weiter
-
Keystore für https
Alle Felder frei lassen (kann auch später konfiguriert werden)
Weiter -
ESciDoc wird nun installiert
Installationsfortschritt des Pakets: [Fertig]
Overall installation progress: 14/14
Weiter -
Glückwunsch
Weiter -
Die Installation wurde erfolgreich durchgeführt!
Ein Deinstallationsprogramm wurde in folgendem Dateipfad gespeichert: /home/<username>/location/escidoc/Uninstaller
Wenn gewünscht kann ein automatisches Installationsscript generiert werden.
Fertig
Hinweis:
Wenn ein fatal error auftritt, ist möglicherweise der Zugriff auf die PostgreSQL-DB nicht richtig konfiguriert.
Die Einstellungen in der Konfigurationsdatei pg_hba.conf (/var/lib/pgsql/data/pg_hba.conf) sollten nocheinmal geprüft werden.
Sind die Zugänge auf md5 gestellt? (siehe PostgreSQL installieren)
Fedora-Home Variable in der .bashrc setzen
vim .bashrc (/home/<username>/.bashrc)
Folgendes ans Ende der .bashrc kopieren:
# FEDORA export FEDORA_HOME='/home/<username>/location/escidoc/fedora'
Speichern und schließen (:wq)
Danach Terminal neustarten
Hinweis für lokale Tests OHNE Sicherung der JMX-Console durch einen Apache-Server:
Wenn der Zugriff auf den JBoss erlaubt werden soll, muss der Port 8080 in IPTABLES eingetragen werden:
iptables -I INPUT -m tcp -p tcp --dport 8080 -j ACCEPT
ESciDoc ist installiert :)
imeji auf eSciDoc 1.4[edit]
Benötigte Dateien[edit]
imeji.ear (imeji Programmpaket - aus Sourcecode compilieren)
imeji.properties (Konfigurationsdatei für imeji)
imeji2oai_dc.xslt (eigenes XSLT für die Darstellung der Daten, die über OAI-PMH abgerufen werden)
oai.properties (Konfigurationsdatei für die OAI-PMH-Schnittstelle)
vocabulary.properties (Konfigurationsdatei für verwendete Vokabularien (standardisiert von CoNE abgerufen))
imeji.ear für OAI-PMH vorbereiten[edit]
(Führe das folgende in der Datei fds.properties in fledgeddata_presentation aus bevor imeji kompiliert wird.)
(Wenn nicht vor der Kompilierung durchgeführt, dann:) Gehe in den Ordner imeji.ear -> fledgeddata_presentation.war -> web_inf/classes und editiere dort die Datei fds.properties.
Spitze Klammern sind entsprechend zu ersetzen:
appname=Fledged Data Service oai.serviceUnavailable=false #(Optional): Forces the server to return a SC_SERVICE_UNAVAILABLE code to inform the user that it is currently being worked on. oai.description= Imeji Repository is an eSciDoc application of the Max Planck Digital Library to archive and manage images together with their specific metadata. #(Optional): Describe your repository oai.baseURL=http://<servername>/fledgeddata/oai #(Optional): Force OAI responses to include the specified baseURL instead of getting it from the HttpServletRequest. This may be necessary if your firewall/router/port-mapper is messing with the request in some way. oai.repositoryIdentifier=Image Url oai.sampleIdentifier=http://imeji.mpdl.mpg.de/image/14 oai.repositoryName=Imeji Repository.secondsToLive=undefined #(Optional): The number of seconds a resumptionToken is retained for reuse. The default is -1, which means that resumptionTokens are stateless and can be resent anytime. Repository.harvestable=true #(Optional): If present and false, the ListRecords and ListIdentifiers verbs will send back an error condition. This might be useful if you want to provide access to the other verbs but want to discourage general harvesting. Repository.granularity=YYYY-MM-DD #(Required): The supported level of datetime granularity for from/until parameters. Repository.baseURL=http://<servername>/imeji Repository.nativeFormat.Name=imeji Repository.nativeFormat.Schema=imejiSchema Repository.nativeFormat.ns=imejiNamespace Repository.oai.stylesheet=imeji2oai_dc.xslt Repository.oai.fetchURL=http://<servername>/export?format=rdf&type=image&q= (ID_URI.URI="FETCH_ID" ) #(Required): The url where to fetch the records from e.g. the export interface of imeji solution Please insert FETCH_ID as a placeholder for the identifier parameter Repository.oai.listRecordsURL=http://<servername>/export?format=rdf&type=image #(Required): The url where to get the record list from Repository.oai.listSetsURL=http://<servername>/export?format=rdf&type=collection # http://imeji-mediathek.de/export?format=rdf&type=album #(Required): The url where to get the set information from, seperate multiple urls with # Identify.repositoryName=Imeji #(Required): Text to use as the Identify verb's repositoryName value. Identify.adminEmail=<adminEmail> #(Required): Text to use as the Identify verb's adminEmail value. Identify.earliestDatestamp=[datetime stamp of earliest] #(Required): Text to use as the Identify verb's earliestDatestamp value. Identify.deletedRecord=[no|transient|persistent] #(Required): Text to use as the Identify verb's deletedRecord value.
Diese Einstellungen müssen auch in die oai.properties kopiert werden.
Dateien an entsprechende Orte kopieren[edit]
Die imeji.ear in den Ordner deploy des JBoss verschieben (z.B. /home/<username>/location/eSciDoc/JBoss/server/default/deploy).
Die Dateien mit den Endungen .properties und .xslt in den Ordner conf des JBoss verschieben (z.B. /home/<username>/location/eSciDoc/JBoss/server/default/conf).
esciDoc-IDs generieren[edit]
- escidoc starten und zum Admin Tool wechseln (links aus der Liste auswählen)
-
Oben rechts auf Login klicken und als sysadmin einloggen
(Falls das Login nicht funktionieren sollte - prüfen ob postgreSQL gestartet wurde) -
Nun wähle links Content Models aus
gib als Title z.B. IKB ein (mit zugehöriger Description - beschreibender Text)
(A new Content Model with the ID escidoc:1 is created)
Die Object ID unter dem Feld Description notieren - hier escidoc:1 -
Nun unter Organizational Units die organisatorische Struktur der Institution abbilden:
z.B.:
- zuerst "HU-Berlin" erstellen ("Save" und danach auf "Open" klicken für die Aktivierung)
- dann "Phil Fak III" erstellen, bei Parents auf Add klicken und "HU-Berlin" auswählen, ("Save" und danach auf "Open" klicken für die Aktivierung)
- dann "IKB" erstellen, bei Parents auf Add klicken und "Phil Fak III" auswählen ("Save" und danach auf "Open" klicken für die Aktivierung)
-
Dann wähle links Contexts aus
Einen neuen Context anlegen z.B. Bildsammlungen am IKB
Alle Felder mit einem roten Stern müssen ausgefüllt werden.
Bei dem Feld Organizational Units auf Add klicken und IKB auswählen
Save
danach zur Aktivierung auf "Open".
Die Object ID unter dem Feld Description merken - hier escidoc:5 - vom Admin Tool abmelden (Logout)
imeji.properties editieren (eigene Anpassungen)[edit]
imeji.properties öffnen (im Ordner: /home/<username>/location/eSciDoc/JBoss/server/default/conf)
URL-Pfade zur imeji-Instanz und zur eSciDoc-Instanz:
# >>>OHNE Apache<<< # URL of this Imeji instance escidoc.faces.instance.url=http://<Servername>:8080/imeji/ # URL of the FIZ framework instance escidoc.framework_acess.framework.url=http://<servername>:8080 # >>>MIT Apache<<< # URL of this Imeji instance escidoc.faces.instance.url=http://<Servername>/imeji/ # URL of the FIZ framework instance (Zugang zu eSciDoc, damit Bilder abgespeichert werden können) escidoc.framework_acess.framework.url=http://localhost:8080
eSciDoc Context ID einfügen:
# Identifier of the eSciDoc context used by Imeji
escidoc.faces.context.id=escidoc:5
eSciDoc Content-Model ID einfügen:
# Identifier of the eSciDoc content-model used by Imeji
escidoc.faces.content-model.id=escidoc:1
Email server konfigurieren (falls gewünscht):
# Spitze Klammern entsprechend ersetzen # Email server config imeji.email.server.smtp=<smtp-server> imeji.email.user=<Benutzername> imeji.email.password=<passwort> imeji.email.auth=false (wenn false, dann werden Benutername und Passwort nicht benötigt) imeji.email.sender=<versender@eigener-server.de> (eigene Versendeadresse)
Speicherort der imeji-Metadaten festlegen:
#Path to Jena's TDB database imeji.tdb.path = /home/<username>/location/eSciDoc/JBoss/server/default/data/imeji_tdb/imeji_data
Im Ordner /home/<username>/location/eSciDoc/JBoss/server/default/data/ muss der Ordner imeji_tdb/ erstellt werden.
und im Ordner imeji_tdb/ muss der Ordner imeji_data/ erstellt werden.
Am Ende muss noch der imeji-Administratoraccount festgelegt sowie der Nutzer mit mindestens depositor und privileged-viewer Rechten in eSciDoc (hier der sysadmin von eSciDoc) angegeben werden.
imeji.sysadmin.email = beliebige email (Administrator von imeji) (z.B. ikb@ikb.de)
imeji.sysadmin.passwort...
imeji.escidoc.user = sysadmin (wird benötigt um Bilder in eSciDoc ablegen zu können, z.B. sysadmin)
imeji.escidoc.passwort...
Speichern
eSciDoc neu starten
Wichtig! immer wenn man die properties ändert muss escidoc neu gestartet werden!
Browser öffnen:
http://<Servername>:8080/imeji bzw. (mit Apache-Konfiguration) http://<Servername>/imeji
Mit der imeji-sysadmin-email einloggen (z.B. ikb@ikb.de).
Sollte es Probleme geben, so kann man über das Admin Tool auch die eSciDoc-Beispiele einspielen und die zugehörigen IDs in die imeji.properties übernehmen. (links unter Admin Tasks auf "Load Examples" klicken, rechts den Button "Load Examples" klicken, es erscheint eine Liste mit escidoc-IDs, diese merken und die Content-Model und Context-ID in die imeji.properties übernehmen).
imeji ist installiert :)