view artifacts/doc/installation_de.rst @ 7458:b2e167f193d7

run_geo.sh: allow logging as documented.
author Tom Gottfried <tom.gottfried@intevation.de>
date Tue, 29 Oct 2013 18:57:40 +0100
parents d9488ca6090b
children 9cf5fd49837a
line wrap: on
line source
=================
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.

#. 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

#. 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 posgresql-libs

#. Anlegen der Logger Gruppe::

    gropadd flys_log

#. Anlegen des Flys Nutzers::

    useradd -G users,flys_log,www -m 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.

.. raw:: pdf

    PageBreak

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

#. Instantclient entpacken::

    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 500M AUTOEXTEND ON NEXT
        100M MAXSIZE 1G LOGGING ONLINE PERMANENT BLOCKSIZE 8192 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, RESOURCE TO flys3;


``Schema importieren``
~~~~~~~~~~~~~~~~~~~~~~

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


Mit einem vorhandenen sqlplus unter /opt/instantclient_11_2::

    NLS_LANG=.AL32UTF8 /opt/instantclient_11_2/sqlplus <user>/<pass>@<ip>:<port>/<dbname>
    @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

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.

``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``
~~~~~~~~~~~~~~~~~~~~~~~~
#. Datenbank-Verbindung:

    Die externen Datenbanken von Dive4Element River werden in den Dateien
    server/conf/backend-db.xml und server/conf/seddb-db.xml konfiguriert.

    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>/<backend>

    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:
    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>/home/teichmann/gewaesser-final/</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/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::

    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
    /etc/init.d/apache2 reload

``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]


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.::

    /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 web.xml anzupassen insbesondere
wenn man zwischen https und http wechselt. Default ist https.

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

http://dive4elements.wald.intevation.org