Georchestra
Mise en place Bac à sable sur Nancy Configuration
1. Mise en place Bac à sable sur Nancy
Identifier les services à fournir et les machines virtuelles support.
  • Ldap : déjà en place ()
  • Installation Ldap selon script puis import ldif (source georchestra github) pour les groupes / utilisateurs prédéfinis. Racines sioea.inra.fr et idsbas.inra.fr sur machine ldap-bas.orleans.inra.fr. (IP : 147.99.222.231).
 
  •  Source georchestra (serveur déjà existant :
  • 147.99.209.191 georchestra-source.nancy.inra.fr
  •  création profil bacasable  + personnalisation :
  • Recopie profil preprodab en basncy
  • Personnalisation shared.maven.filters, GenerateConfig.groovy, logo.png et fichiers GEOR_Custom.js des applications extractor et mapfishapp.
  • Mise en place dans le profil d'une arborescence ogc-statistics et personnalisation de src/test/resources/org/georchestra/ogcservstatistics/log4j.properties ( https://github.com/georchestra/georchestra/tree/14.06/ogc-server-statistics#configure-log4jproperties )
  • Si nécessaire ouverture de ports à demander EIC Nancy (pour script de déploiement des VM)
 
  • Commun serveurs tomcat
  • Mise en place modèle de machine virtuelle (Debian 7 Tomcat 6)
 
  • Portail :
  • Déploiement à partir de machine modèle et dimensionnement :
  • Disque data à 50 Go
  • Mémoire à 10 Go
  • inscription dns + ouverture de port (vers EIC)
  • Demander certificat officiel chez renater
  • Finalisation de l'installation + documentation accessible sur le réseau (contenu.txt de la VM)
  • Mise en place + personnalisation des scripts de déploiement.
  • Exécution scripts de déploiement + test des applis
 
  •  Geoserver :
  • Déploiement à partir de machine modèle et dimensionnement :
  • 2 VCPU
  • Disque data à 250 Go
  • Mémoire à 16 Go 
  • inscription dns + ouverture de port (vers EIC)
  • Finalisation de l'installation + documentation accessible sur le réseau (contenu.txt de la VM)
  • Mise en place + personnalisation des scripts de déploiement.
  • Exécution scripts de déploiement + test des applis
 
 
2. Configuration
La configuration suivante est choisie (4 serveurs + une machine dédiée aux sources). Toutes les machines sont virtualisées et finalisées sur la base de machines modèles ou template.
 
  • Un serveur ldap hébergé à Orleans et utilisé par l'IDS en production ou celles en pré-production.
  • Centos 6
  • Racine ldap : idsbas.inra.fr
  • Un serveur postgresql hébergé à Nancy (147.99.210.190) utilisé par l'IDS bac à sable ou celles en pré-production
  • Centos 6 / Postgresql 9.2 / Postgis 2
  • La base db_georchestra_basncy
  • Sous la base db_georchestra_basncy les 6 schemas nécessaires aux applications georchestar déployées.
  • Un serveur Apache / Tomcat en frontal IDS :
  • Debian 7 / Tomcat 6/ Apache 2.2
  • 3 instances de tomcat avec :
  • le premier hébergeant les applications :
  • Security-Proxy
  • CAS
  • downloadform
  • header
  • ldapadmin
  • le second hébergeant les applications :
  • Mapfishapp
  • Analytics
  • Geofence
  • le troisième hébergeant les applications :
  • geonetwork.
  • Un second serveur Tomcat :
  • Debian 7 / Tomcat 6 / nginx
  • 4 instances de tomcat avec :
  • le premier hébergeant
  • Geoserver (partie administration)
  • Geowebcache
  • le second hébergeant
  • Geoserver (partie flux OGC)
  • le troisième hébergeant
  • Geoserver (partie flux OGC)
  • le quatrième hébergeant
  • Extractor
Les 2 serveurs Tomcat sont monitorés avec monit.
Pour la récupération des sources et les opérations de personnalisation / compilation une machine dédiée est utilisée. Elle est hébergée à Nancy (georsource.nancy.inra.fr 147.99.209.191)
Impératif de conf
  • Il ne faut pas installer Geoserver et Geonetwork sur le même tomcat
  • Si geoserver est sur le même tomcat que le Security Proxy le frontal Apache doit rediriger geoserver-private qui apparaît au cours de certaines manipulations au sein de geoserver. Nous avons choisi d'installer geoserver sur un autre serveur donc sur un autre tomcat.
  • L'application header doit passer par le security-proxy.
Machine de compilation
Serveur virtuel collectif hébergé sur le serveur ESXi du plateau SIG-BD (147.99.209.191).
Configuration VM
Installation nouvelle dépendance le 10/10/2013 :  apt-get install python-virtualenv
Passage à la version 14.06 le 02/10/2014 :
  • git clone -b 14.06 --recursive https://github.com/georchestra/georchestra.git
  • [ git submodule sync ] non réalisé en 14.06
  • [ git submodule update ] non réalisé en 14.06
Création de template de compilation :
  • preprodab pour préproduction Alain Benard
  • preprodnl (à venir) pour préproduction Nathalie Leroy
  • basncy pour version de test sur infrastructure Nancy.
  • sioea (à venir) pour IDS en production (Orleans)
Installation de 'GDAL Java binding library' selon la documentation https://github.com/georchestra/georchestra/blob/master/INSTALL.md#gdal-for-geoserver-extractorapp--mapfishapp . L'installation est faite dans le dossier /data/sig qui pourra simplement être recopié sur les serveurs qui le nécessite et sur lesquels il faudra ensuite positionner les variables d'environnement adéquates (fichier setenv.sh de tomcat) :
export LD_LIBRARY_PATH="/lib:/usr/lib/:/data/sig/gdal/NativeLibs/:$LD_LIBRARY_PATH"
export GDAL_DATA="/data/sig/gdal/data"
Personnalisation pre-compil
 Personnalisation des paramètres généraux (chemins, comptes, applis, serveurs)
  • Le fichier /data/georchestra/config/configurations/basncy/build_support/shared.maven.filters (+ fichier groovy depuis été 2014) contient les variables à personnaliser. En cas d'absence le fichier du dossier /data/georchestra/config/defaults est prise en compte (absent par défaut) et en cas d'absence également le fichier du dossier /data/georchestra/config/ (présent par défaut) sera pris en compte.
  • le mappage des url par l'application ROOT (Security-Proxy) est à personnaliser sous /data/georchestra/config/configurations/bacasable/security-proxy/maven.filters (entrée config.mapping??????)
  • La suppression des liens pour changer le mot de passe ldap ou créer un compte ldap depuis l'écran de login se fait via en personnalisant le fichier config/configurations/bacasable/cas-server-webapp/WEB-INF/view/jsp/default/ui/casLoginView.jsp
  • remove line #35 to #38, to remove the URL to the ldapadmin creation account from the cas webapp.
  • ligne 25 (suppression du lien pour 'mot de passe oublié').
La préparation / personnalisation des modules georchestra à installer fait l'objet de documentations utiles (reprises en partie dans les sous-branches de cet item) :
 
Analytics
downloadform
Version 14.06
security-proxy
Version 14.06
Le script /data/georchestra/config/configurations/bacasable/build_support/GenerateConfig.groovy  contient les variables à personnaliser.
ogc-server-statistics
Version 14.06
Dupliquer le fichier ogc-server-statistics/src/test/resources/org/georchestra/ogcservstatistics/log4j.properties dans le profil à modifier puis personnaliser ce fichier.
mapfishapp
Version 14.06
  • mapfishapp/default.wmc (context par défaut). Non modifié en bac à sable.
  • mapfishapp/app/js/GEOR_custom.js  (liste des geoserver / geonetwork accessibles ...)
extractor
Version 14.06
  • extractor/app/js/GEOR_custom.js  (liste des couches par défaut ...)
 
Compilation
Dans le dossier racine des sources (/data/georchestra) et pour une utilisation du profil de personnalisation basncy taper la commande :
  • ./mvn -Dmaven.test.skip=true -Dserver=basncy install
Le 24/10/2014 une compilation avec support de geofence et différents modules est lancée par la commande :
 ./mvn -Dserver=basncy -Dmaven.test.skip=true -Pgeofence -Pgeoserver -Pcontrol-flow,gdal,kml,ogr,pyramid,script,wps, clean install > compil_basncy.txt &
La compilation dure environ 1/4 d'heure sur la machine virtuelle au 02/12/2012.
la compilation du 24/10/2014 incluant un plus grand nombre de module dure environ 30 minutes.
 
Déploiement
Nous avons privilégié un déploiement depuis les serveurs hébergeant les applications. Un script exemple est disponible à l'url suivante : https://svngeodb.nancy.inra.fr/svn/scripts/trunk/serveurs%20virtuels/installations/georchestra/
Il convient donc de mettre en place le nécessaire sur le serveur tomcat, puis l'utiliser :
  1. le fichier confiance.sh permet d'installer les clés pour une connexion transparente au serveur de sources.
  2. le fichier install_frontal_bas_ncy.sh déploie l'ensemble des applications des 3 instances tomcat du serveur frontal.
  3. le fichier install_geoserver_bas_ncy déploie l'ensemble des applications des 4 instances tomcat du serveur geoserver.
Les scripts sont à vérifier / personnaliser avant usage.
Serveur Ldap
Configuration VM
Réseau
FQDN : ldap-bas.orleans.inra.fr
IP : 147.99.222.232
 
Serveur Postgresql
Utilisation de 147.99.210.190 (ancien serveur pggeodb.nancy.inra.fr devenu preproduction)
 
Serveur Portail
Administration bas à sable : - Une page spécifique permet d'accéder à différents outils de monitoring ou aux urls non accessibles par l'interface :
 
Configuration VM
Réseau
FQDN : ids-bas-portail.nancy.inra.fr
IP : 147.99.210.189
 
tomcat Security Proxy
 
Apache
Voir configuration VM pour la personnalisation d'apache.
 
tomcat geonetwork
dosssiertomcat/bin/setenv.sh :
  • export JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=/var/lib/tomcat6/conf/keystore -Djavax.net.ssl.trustStorePassword=changeit  -Xms512m -Xmx1024m"
  • export CATALINA_OPTS="-Dgeonetwork.dir=/data/geonetwork/gn_data \ -Dgeonetwork.schema.dir=/var/lib/tomcat6ter/webapps/geonetwork/WEB-INF/data/config/schema_plugins \  -Dgeonetwork.jeeves.configuration.overrides.file=/var/lib/tomcat6ter/webapps/geonetwork/WEB-INF/config-overrides-georchestra.xml"
 
Serveur Geoserver
Si Geoserver s'appuie sur geofence son catalogue doit être configuré selon la documentation ( doc) :
it is required that you update the data_dir_path/security/auth/default/config.xml file in your geoserver DATA_DIR in order to make your GeoServer able to communicate with the GeoFence. Namely, you have to change the className value, in order to refer to the geofence authentification provider :
  <className>it.geosolutions.geoserver.authentication.auth.GeofenceAuthenticationProvider</className>
Here's the diff: georchestra/geoserver_minimal_datadir@2834a7
Au final un catalogue vide a été mis en place ( https://github.com/georchestra/georchestra/blob/14.06/INSTALL.md#geoserver )
  • La commande git de récupération est lancée sur la machine hébergeant les sources (/data/script/gesoerver_data_dir.sh)
  • Le dosssier est récupéré de la machine georchestra-source.nancy.inra.fr et mis en place sur le serveur.
Configuration VM
Réseau
FQDN : ids-bas-geoserver.nancy.inra.fr
IP : 147.99.210.188
 
Tomcat Geoserver Extractor
En plus de l'installation de GDAL (Cf configuration VM) il faut installer les GDAL Java bindings libraries en récupérant directement le dossier /data/sig de la machine hébergeant les sources georchestra (placé ici par confort). Cette installation est prise en compte dans le fichier ci-après (pour une recopie dans un chemin identique /data/sig).
dosssiertomcat/bin/setenv.sh (à adapter si besoin selon configuration mémoire):
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=/var/lib/tomcat6/conf/keystore \     
          -Djavax.net.ssl.trustStorePassword=changeit \
          -Xms2G -Xmx4G -XX:PermSize=256m -XX:MaxPermSize=256m \
          -DGEOSERVER_DATA_DIR=/data/work/gs_data \
          -DGEOWEBCACHE_CACHE_DIR=/data/work/geowebcache/cache/dir \
          -DGEOSERVER_LOG_LOCATION=/data/work/gs_data/logs/geoserver1.log\
          -Dextractor.storage.dir=/data/tmp/ \  [Pour tomcat hébergeant Extractor]
          -Djava.awt.headless=true \
          -Dfile.encoding=UTF8 \
          -Djavax.servlet.request.encoding=UTF-8 \
          -Djavax.servlet.response.encoding=UTF-8 \
          -server \
          -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=2 \
          -XX:SoftRefLRUPolicyMSPerMB=36000 \
          -XX:NewRatio=2 \
          -XX:+AggressiveOpts "  
          export LD_LIBRARY_PATH="/lib:/usr/lib/:/data/sig/gdal/NativeLibs/:$LD_LIBRARY_PATH"
          export GDAL_DATA="/data/sig/gdal/gdal-data"
          export JAVA_OPTS="$JAVA_OPTS -Dorg.geotools.referencing.forceXY=true
- Mise en place dossier de travail geoserver :
       - mkdir /data/work/
       - mkdir /data/work/gs_data
       - chown tomcat6:tomcat6 /data/work/gs_data
recopie de tomcat6/webapps/geoserver/data sous /data/work/gs_data et autorisation en écriture pour l'utilisateur tomcat6 (après un premier déploiement de l'application geoserver).
- Mise en place dossier de travail extractor :
       - mkdir /data/tmp
       - chown tomcat6:tomcat6 /data/tmp