view artifacts/doc/installation_de.rst @ 7685:270946b97539

(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors This also removes duplicated code by basing the TA and MA processors on the same class
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 11 Dec 2013 17:13:26 +0100
parents 9cf5fd49837a
children
line wrap: on
line source
.. header::

    ###Title### - ###Section###

.. footer::

    Seite ###Page### / ###Total###

=================
FLYS Installation
=================

Übersicht
---------

Dieses Dokument beschreibt die Installation des Fachdienstes FLYS.

Abgehandelt werden die Installation der Server-Anwendung (D4E-River),
der Web-Anwendung, die Einrichtung der Datenbanken sowie die Einrichtung
des Moin-Wikis.

Als Basis dient ein SUSE Linux Enterprise Server in Version 11.2.

.. contents:: Inhalt

.. raw:: pdf

    PageBreak

Vorbereitung des Systems
---------------------------

Die Vorbereitung des Systems ist als Root auf dem Zielsystem durchzuführen.

Je nach OpenSUSE Version müssen noch weitere Repositories hinzugefügt werden.
Unter ``10.140.90.89/wiki`` können durch eine Suche nach ``repos`` weitere
repositories hinzugefügt werden.

#. Einloggen als root nutzer::

    su

#. Hinzufügen des OBS Repositorys von Intevation::

    zypper addrepo -f \
    http://download.opensuse.org/repositories/home:/intevation:/bfg/
    SLE_11_SP1/home:intevation:bfg.repo

#. Zusätzlich muss noch das SLES 11 SDK repo hinzgefügt werden::

    zypper ar -t YUM http://voss-update/repo/\$RCE/
    SLE11-SDK-Pool/sle-11-x86_64 SLE11-SDK-POOL

#. Installieren der benötigten Pakete::

    zypper install python-devel python-setuptools libxslt-devel libxml2-devel \
        mozilla-nss-devel apache2 tomcat6 java-1_6_0-ibm libgeos0 netcdf \
        proj xerces-c FastCGI php MyODBC-unixODBC postgresql-libs gd

Sollte es Probleme mit der Abhängikeitsauflösung von xerces-c geben kann
darauf verzichtet werden xerces-c 2.x zu installieren. Dies sollte
als Optionsfrage zur Auswahl stehen.

#. Anlegen der Logger Gruppe::

    gropadd flys_log

#. Anlegen des Flys Nutzers (sofern noch nicht vorhanden)::

    useradd -G users,flys_log,www -m flys

#. Flys Nutzer der Gruppe flys_log hinzufügen (wenn nutzer bereits vorhanden)::

    usermod -A flys_log flys

#. Tomcat und Apache zur flys_log Gruppe hinzufügen::

    usermod -A flys_log tomcat
    usermod -A flys_log wwwrun

#. Logging Verzeichnis anlegen::

    mkdir /var/log/flys
    chgrp flys_log /var/log/flys
    chmod 775 /var/log/flys

#. Betriebsordner anlegen::

    mkdir /opt/flys
    chown flys /opt/flys

#. Firewall ausschalten::

    SuSEfirewall2 off

Der Key-Fingerprint des Intevations Repositorys ist:
``18F8 A017 6DFB 7FD1 22BC  20D6 A73E 24AF BC5A 7BAC``

Nun sollte der weitere Inhalt der beiliegenden CD nach /opt/flys
kopiert und dem Benutzer flys zugänglich gemacht werden.
(z.B.: cp -r /media/UDF\ Volume/* /opt/flys)

.. raw:: pdf

    PageBreak

Oracle Client installieren
--------------------------

#. Instantclient entpacken (als root)::

    cd /opt
    tar -xf /opt/flys/instantclient_11_2.tar.gz
    chown -R flys /opt/instantclient_11_2

#. Library loader konfigurieren::

    cp /opt/flys/oci.conf /etc/ld.so.conf.d/oci.conf


Datenbank initialisieren
------------------------

``Datenbank erstellen``
~~~~~~~~~~~~~~~~~~~~~~~

Das Erstellen der Datenbank sollte vom zuständigen DB-Admin bereits durchgeführt worden
sein. Wichtig ist insbesondere, dass der Nutzer Zugriff auf die Spatial-Tabellen besitzt.
Im folgenden ein Beispiel::

    --CREATE TABLESPACE for user
    CREATE TABLESPACE "flys3" DATAFILE
        '/u01/app/oracle/oradata/XE/flys3.dbf' SIZE 1G AUTOEXTEND ON NEXT
        100M MAXSIZE 10G LOGGING ONLINE PERMANENT BLOCKSIZE 16384 EXTENT
        MANAGEMENT LOCAL AUTOALLOCATE DEFAULT NOCOMPRESS SEGMENT SPACE
        MANAGEMENT AUTO;
    --CREATE USER
    CREATE USER flys3 IDENTIFIED BY flys3;
    -- USER SQL
    ALTER USER flys3 DEFAULT TABLESPACE "flys3" TEMPORARY TABLESPACE "TEMP"
        ACCOUNT UNLOCK ;
    -- QUOTA for user on TABLESPACE
    ALTER USER flys3 QUOTA UNLIMITED ON "flys3";
    GRANT ALL on "MDSYS"."ALL_SDO_GEOM_METADATA" to flys3 ;
    GRANT CREATE SESSION TO flys3 ;
    GRANT CREATE VIEW TO flys3;
    GRANT CONNECT TO flys3;

Dieses Beispiel soll nur zur groben Orientieren dienen welche Rechte FLYS
benötigt. Speziellere Konfiguration ist mit dem zuständigen DB-Admin zu
klären.


``Tabellen anlegen``
~~~~~~~~~~~~~~~~~~~~

Abweichend von der hier beschriebenen Vorgehensweise kann natürlich ein
alternativer Client verwendet werden. Die SQL-Skripte liegen im Unterordner
DB-Schema. Wichtig ist, dass die folgenden
SQL-Skripte in dieser Reihenfolge und in einer UTF-8 Umgebung
ausgeführt werden:

#. oracle.sql
#. oracle-minfo.sql
#. oracle-spatial.sql
#. oracle-spatial_idx.sql

Wechseln in den db-schema Ordner (als flys nutzer)::

    cd /opt/flys/db-schema

SQLPlus aufrufen (mit passendem Encoding zu den scripten)::

    NLS_LANG=.AL32UTF8 /opt/instantclient_11_2/sqlplus <user>/<pass>@<ip>:<port>/<service>

Dann im sqlplus client::

    @oracle.sql
    @oracle-minfo.sql
    @oracle-spatial.sql
    @oracle-spatial_idx.sql

``Schema löschen``
~~~~~~~~~~~~~~~~~~

Zum Löschen der im Schritt Schema importieren importierten Schemata
liegen entsprechende drop Skripte bereit. Diese sollten bei Bedarf in
folgender Reihenfolge ausgeführt werden::

    @oracle-drop-spatial.sql
    @oracle-drop-minfo.sql
    @oracle-drop.sql

.. raw:: pdf

    PageBreak


D4E-River Server Installieren
-----------------------------

Neue Versionen des gesamten FLYS Pakets werden üblicherweise als
GZIP komprimierter Tarball mit dem Namensschema flys-VERSION.tar.gz
zur Verfügung gestellt. Als Beispiel wird hier die Version 3.0.16
angenommen.

``Passende Java Version installieren``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

D4E-River benötigt ein Sun oder OpenJDK Java. Dieses muss extra
installiert werden::

    cd /opt/flys
    sh ./jdk-6u26-linux-x64-rpm.bin
    update-alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_26/bin/java 5
    update-alternatives --install /etc/alternatives/jre jre /usr/java/jdk1.6.0_26/jre 5
    update-alternatives --config java

In dem folgenden Menü sollte als option die Java Version auswählen, welche unter
/usr/java liegt.

``Server entpacken``
~~~~~~~~~~~~~~~~~~~~

#. Als Nutzer flys einloggen::

    su - flys

#. Tarball entpacken::

    cd /opt/flys
    tar -xf flys-3.0.16.tar.gz

#. Symlink für die aktuelle Version anlegen::

    ln -s flys-3.0.16 current

``Server konfigurieren``
~~~~~~~~~~~~~~~~~~~~~~~~

Die externen Datenbanken von Dive4Element River werden in den
folgenden Dateien konfiguriert.::

    /opt/flys/flys-3.0.16/server/conf/backend-db.xml
    /opt/flys/flys-3.0.16/server/conf/seddb-db.xml

In diesen sind Nutzername, Passwort und URL entsprechend den passenden
Werten anzupassen.

Die URL ist dabei nach folgendem Schema aufgebaut:
    jdbc:oracle:thin:@//<hostname>:<port>/<service>

Mithilfe des Eintrags::

    <connection-init-sqls>ALTER SESSION SET CURRENT_SCHEMA=$SCHEMA;</connection-init-sqls>

kann man den initalen Schema Präfix der Datenbank ändern.
Wobei $SCHEMA ein Platzhalter für das zu verwendende Schema ist.
z.B.::

    <connection-init-sqls>ALTER SESSION SET CURRENT_SCHEMA=SEDDB;</connection-init-sqls>

#. URL für Kartendienste
    Sollte der Host-Name des neuen Servers nicht flys3-devel.bafg.de lauten, muss man
    noch die entsprechenden Verweise auf den Kartendienst anpassen::

        cd /opt/flys/flys-3.0.16/server/conf
        sed -i s@flys3-devel.bafg.de@<neue_url>@ rivermap.xml floodmap.xml

#. URL für das Wiki:
    Die URL unter welcher das Flys-Wiki erwartet wird ist in server/conf/conf.xml
    im Eintrag <help-url> konfiguriert. Dies muss auch ggf. auf den neuen Host-Namen
    angepasst werden. Standard ist: https://flys3-devel.bafg.de/wiki

#. Gewässerdaten auf das System kopieren:
    Die Gewässerdaten müssen auf das System übertragen werden und

#. Gewässerdaten:
    Zur Berechnung von Überschwemmungsflächen werden digitale Geländemodelle benötigt.

    Der Ort an dem diese Daten liegen ist in der Datei server/conf/conf.xml als <dgm-path>
    zu konfigurieren. z.B.::

        <dgm-path>/opt/gewaesser<dgm-path>

``Server starten``
~~~~~~~~~~~~~~~~~~

#. Zurück auf root wechseln::

    exit

#. Startskript hinterlegen::

    cp /opt/flys/d4e-river /etc/init.d
    chmod u+x /etc/init.d/d4e-river
    cd /etc/init.d/rc3.d
    ln -s ../d4e-river S10d4e-river
    ln -s ../d4e-river K10d4e-river
    cd /etc/init.d/rc5.d
    ln -s ../d4e-river S10d4e-river
    ln -s ../d4e-river K10d4e-river

#. Server starten::

    /etc/init.d/d4e-river start

Nun kann man sich mit einem Blick in /var/log/flys/server-3.0.16.log
vergewissern, dass der Server korrekt gestartet wurde. In diesem
Fall wäre die letze Zeile des Logs in der Art::

    INFO  Standalone - Starting org.dive4elements.artifactdatabase.rest.Standalone HTTP server on localhost:18989

.. raw:: pdf

    PageBreak

Kartendienste einrichten
------------------------

In SuSE Linux Enterprise ist kein Paket für den benötigten Mapserver
vorhanden. Dieses muss manuell installiert werden (root)::

    cd /opt/flys/mapserver-pakete
    rpm -i --nodeps *.rpm

Ob die Installation erfolgreich war kann man durch Abfrage der Mapserver
Version testen::

    /srv/www/cgi-bin/mapserv -v

Nun können die Kartendienste (river-wms, user-wms) von Flys eingerichtet
werden (als root)::

    cp /opt/flys/*-wms /srv/www/cgi-bin/
    chmod a+x /srv/www/cgi-bin/*-wms

Apache konfigurieren
--------------------

Eine Beispielkonfiguration für den Apache Webserver ist die Datei flys.conf
auf der beigelegten CD. Diese kann in das Apache vhosts.d Verzeichnis kopiert
werden. In dieser muss ggf. der Redirect für das Geoportal angepasst werden,
da in diesem die URL enthalten ist.

Apache Konfiguration kopieren::

    cp /opt/flys/flys.conf /etc/apache2/vhosts.d

In der Konfigurationsdatei ``/etc/apache2/vhosts.d/flys.conf`` muss ggf.
der redirect auf einen anderen Host geändert werden.

Apache neu starten::

    /etc/init.d/apache2 restart

``HTTPS einrichten``
~~~~~~~~~~~~~~~~~~~~

Um verschlüsselten Zugriff über https einzurichten kann man o.g. Konfiguration
entsprechend anpassen. Wie dies zu geschehen hat ist der Apache Dokumentation
zu entnehmen und soll nicht Teil dieser Anleitung sein. Allerdings ist zu bemerken,
dass darauf geachtet werden sollte, es weiterhin zu ermöglichen Kartendienste über
http abzurufen. Dies kann man durch einen bedingten Redirect in der Konfiguration
des VirtualHosts auf Port 80 erreichen::

    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^/cgi-bin/
    RewriteRule (.*) https://flys3-devel.bafg.de/$1 [R=301,L]

.. raw:: pdf

    PageBreak

Web Client Installieren
-----------------------

Der Web Client läuft als Tomcat Webapp. Damit Tomcat diesen startet
muss der Client nur an die richtige Stelle kopiert werden. (als root)::

    /etc/init.d/tomcat6 stop
    cp /opt/flys/flys-3.0.16/client/flys-3.0.16.war /usr/share/tomcat6/webapps
    /etc/init.d/tomcat6 start

Das Neustarten des Tomcat Servers ist hierbei optional, kann aber dazu dienen
die Stabilität des Tomcat Servers zu verbessern.

Ggf. ist noch der Eintrag print-url in der Datei
``/usr/share/tomcat/webapps/flys-3.0.16/WEB-INF/web.xml`` anzupassen
insbesondere wenn man zwischen https und http wechselt. Default ist https.


In der Datei ``/var/log/tomcat6/catalina.out`` kann man nachsehen ob
der Start erfolgreich war. Gab es Probelme mit Java muss man
ggf. die verwendete Java Version in /etc/tomcat6/tomcat6.conf
anpassen indem man den Eintrag JAVA_HOME ändert::

    JAVA_HOME="/usr/java/jdk1.6.0_26/jre"

Wiki installieren
-----------------

Das Wiki für den Fachdienst Flys ist so konfiguriert, dass es
unter /home/flys/wiki erwartet wird.

Wiki entpacken::

    su - flys
    cd /home/flys
    tar -xf /opt/flys/flys-wiki.tar.gz
    exit

Rechte für wwwrun setzen::

    cd /home/flys/wiki/moin-2013-02-01/wiki/
    chown -R wwwrun data underlay

.. raw:: pdf

    PageBreak


FLYS-Importer
-------------

Um den Flys Importer nach /opt/flys zu installieren
reicht es Diesen zu entpacken (als Nutzer flys).::

    cd /opt/flys
    tar -xf /opt/flys-importer_201310251707.tar.gz

Dieser liegt anschließend unter /opt/flys-importer
bereit. Die Konfiguration und Verwendung ist der
Importer Dokumentation zu entnehmen. Diese liegt
nun unter::

    /opt/flys/flys-importer/importer-manual.pdf

AFT-DIPS
--------

AFT Dips nach /opt/flys installieren::

    cd /opt/flys/
    tar -xf aft-dips-etl.tar.gz

Ggf. muss nun noch die Konfiguration der Datenbanken angepasst werden.
Die zugehörige Konfigurationsdatei ist::

    /opt/flys/aft-dips-etl/conf/conf.xml

Der Prozess kann nun ausgeführt werden::

    /opt/flys/aft-dips-etl/bin/run.sh

Logs des AFT/DIPS synchronisationsprozesses werden unter
``/opt/flys/aft-dips-etl/logs`` abgelegt.

http://dive4elements.wald.intevation.org