NOM : DEBIAN_8_64-TOMCAT8 (en version 8.2 au 16/09/2015) Hérite de : DEBIAN_8_64-INRA *** Description générale *** Cette station contient Linux DEBIAN 8.2 64 bits installé par cd iso (debian-8.2.0-amd64-netinst.iso téléchargement sur http://cdimage.debian.org/debian-cd/8.2.0/amd64/iso-cd//debian-8.2.0-amd64-netinst.iso) du 15/09/2015. (Paquets usuels + Serveur SSH). En plus du contenu hérité elle comporte le script d'installation de tomcat 8 (https://svngeodb.nancy.inra.fr/svn/scripts/trunk/serveurs%20virtuels/installations/tomcat/tomcat8_deb8_georchestra.sh) dont l'exécution a été réalisée et une modification de certains fichiers par défaut a complété l'opération. 15/09/2015: création de la machine (Alain BENARD) Caractéristiques initiales de la machine virtuelle : mémoire : 2 Go processeur : 1 seul disque1 : SCSI 20 Go (0/0 - non préalloué) - Partitionnement conforme à la documentation d'installation excepté la partition de swap (voir second disque). - fichier 'Disque DEBIAN_8_64-INRA'. disque2 : SCSI 4 Go (0/1 - préalloué) - 1 seule partition primaire de type sawp utilisant tout l'espace du disque. - fichier 'Disque DEBIAN_8_64-INRA Swap'. disque3 : SCSI 10 Go (0/2 - non préalloué) - 1 seule partition primaire utilisant tout l'espace du disque et montée sous /data. Facilement extensible en cas de besoin. - fichier 'Disque DEBIAN_8_64-INRA Data'. CD-ROM / DVD : Lecteur Physique (image ISO durant l'installation). Ethernet : VMNet8 NAT. Contrôleur USB : Présent Autre : Pas de lecteur de disquette, ni de carte son ni de port parallèle comptes utilisateurs initiaux : (idem machine mère) login : root mdp : Templ@t3 Le système impose la création d'un second compte : login : inra mdp : Templ@t3) --------------------------------------------------------------------------------------------------- ISSU MACHINE MERE : --------------------------------------------------------------------------------------------------- 15/09/2015 (Alain Benard) : Installation OS : Nom Machine Initial : debian8maquette (sur domaine nancy.inra.fr) Réseau : Configuration IP Dynamique Résolution graphique : pas d'interface graphique. Principales options retenues durant l'installation : Partionnement : utilisation complète du 1° disque virtuel (1 Logical Volume contenant un groupe de volumes debian8maquette-vg et 4 volumes logiques définis par le programme d'installation et reconfiguré par la suite) : Point de montage Type Nom de volume logique Taille du volume logique (Mo) / ext4 root 7,18 Gb /usr ext4 usr pas de partition usr proposée par le système /var ext4 var 6,79 Gb /home ext4 home 3,12 Gb /tmp ext4 tmp 380 Mb Reste 4 Gb de libre en cas de besoin. - Le swap est herbergé dans l'unique partition du second disque virtuel. Le non respect des préconisations INRA utilisant les volumes logiques est dû au fait que l'on ne connait pas la future utilisation du serveur virtuel et que les outils VMWare permettent facilement d'ajouter des disques et d'en modifier la taille. Cela permet également de préallouer le fichier correspondant à la partiton swap. La séparation en plusieurs disques permet d'utiliser le thin provisioning Vmware de manière plus fine, voir d'héberger certains disques virtuels d'une même machine virtuelle sur des architectures de stockage différentes (par exemple un disque système sur un SAN à disque rapide et un disque données sur un NAS RAID5 avec des disques de grande capacité). ------------ 15/09/2015 (Alain Benard) - Installation de vim apt-get install vim) - alias root dans /etc/aliases pointant vers nom@domaine.fr pour ne pas polluer une adresse réelle lors des phases de déploiement ou test. - installation openssh (apt-get install openssh-server) + configuration PermitRootLogin yes - Reconfiguration des volumes pour obtenir la configuration précisée plus haut dans ce document. - apt-get install build-essential. - apt-get install open-vm-tools - Purge partielle de /root/.bash_history pour mieux mettre en évidence les commandes nécessaires à la personnalisation de dernière minute et les opérations importantes réalisées lors de la constitution de la machine virtuelle. --------------------------------------------------------------------------------------------------- NON HERITE : --------------------------------------------------------------------------------------------------- 16/09/2015 (Alain Benard) - Mise en place du script tomcat8_deb8_georchestra.sh sous /root/tomcat8 puis exécution - Modification de /etc/default/tomcat8 pour supprimer Xmx128m - Modification de /usr/share/tomcat8/skel/conf/tomcat-users.xml pour un fichier par défaut permettant une connection aux utils d adminsitration. - Modification de /usr/share/tomcat8/skel/conf/server.xml pour la défintion d'un connecteur sur le port 8443 en https et prise en compte du keystore défini. - Mise en place du script create-instance-tomcat8-https.sh sous /root/tomcat8 (https://svngeodb.nancy.inra.fr/svn/scripts/trunk/serveurs%20virtuels/installations/tomcat/create-instance-tomcat8-https.sh) --------------------------------------------------------------------------------------------------- Hors maquette : --------------------------------------------------------------------------------------------------- 18/09/2015 (Alain Benard) Préparation de la configuration en vue d'héberger le portail de l'IDS Bac à sable en version 15.06. Les opérations réalisées s'appuient sur la documentation de la création de la VM portail ancienne génération (Debian 7 - Tomcat 6 - Georchestra 14.06 : https://appgeodb.nancy.inra.fr/donnees/documentations/ids/bacasable/portail/Contenu.txt) réactualisée au vu des documentations georchestra : - pour apache : https://github.com/georchestra/georchestra/blob/15.06/doc/setup/apache.md - pour les natives libs : https://github.com/georchestra/georchestra/blob/15.06/doc/setup/native_libs.md - pour la finalisation des instances tomcat : https://github.com/georchestra/georchestra/blob/15.06/doc/setup/tomcat.md Les opérations qui en découlent : *** APACHE *** - Installation apache : apt-get install apache2 libapache2-mod-auth-cas - Activation de modules apache : a2enmod proxy proxy_http ssl rewrite headers deflate (ssl ne fonctionnera pas pour l'instant [voir plus loin] car le nécessaire n'est pas fait au niveau certificat) Cette liste difféère de ce qui a été fait en 14.06 notamment par l'absence de ce qui relève du connecteur AJP qui n'est plus utilisé. - service apache2 restart - L'arborescence /var/www/georchestra : - Pour une installation vierge suivre la doc y compris pour htdocs (https://github.com/georchestra/georchestra/blob/15.06/doc/setup/apache.md#directory-structure) - Pour une migration récupérer celle du serveur à migrer. - La configuration des virtual host - Pour une installation vierge suivre la doc et personnaliser (certificat SSSL, nom d'hôte ...) : https://github.com/georchestra/georchestra/blob/15.06/doc/setup/apache.md#virtualhosts - Pour une migration récupérer /etc/apache2/sites-available/georchestra (à renommer en georchestra.conf sur la nouvelle istallation). - Récupérer les certificats et les mettre en place conformément aux chemin du VirtualHost 443 (3 fichiers). - Adapter la gestion des accès en utilisant 'Require all granted' plutôt que l'ancienne syntaxe) - Différence avec la doc 15.06 : - (SSLProtocol All -SSLv3 -SSLv2 demandé par la DSI INRA lors des failles ssl) - Nous avons utilisé pour le VirtualHost du port 80 : Redirect permanent / https://ids-bas-portail.nancy.inra.fr/ alors que la documentation suggère : RewriteCond %{HTTPS} off et RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} - La désactivation des sites par défaut et l'activation du site georchestra : - a2dissite default 000-default default-ssl - a2ensite georchestra - La configuration au sein des fichiers conf : D'une manière générale le passage de Apache 2.2 à 2.4 impose une nouvelle syntaxe des droits : version 2.2 : Order allow,deny Allow from all version 2.4 : Require all granted - Pour une installation vierge suivre la doc et personnaliser - Pour une migration le sous-dossier conf sous /var/www/georchestra a déjà été récupéré. - Différence avec la doc 15.06 : - global.conf : Ajouter la directive AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml text/css text/javascript application/javascript Passer ProxyTimeout à 86400 Supprimer la directive SetEnv no-gzip on - proxy.conf : quelques modifications mineures prises en compte. Le port utilise dans notre configuration pour le proxy-cas est le 8080 et non 8180 (implique tous les autres fichiers de conf) - cas.conf : pas de modification significative. - analytics.conf : pas de modification significative. - catalogapp.conf : nous ne sommes pas concernés (application non déployée) - downloadform.conf : pas de modification significative. - extractorapp.conf : pas de modification significative. - geonetwork.conf : pas de modification significative. - geoserver.conf : pas de modification significative. - geofence.conf : pas de modification significative. - geowebcache.conf : pas de modification significative. - header.conf : pas de modification significative. - ldapadmin.conf : pas de modification significative. - mapfishapp.conf : pas de modification significative. Notre configuration comporte 2 fichiers supplémentaires de configuration z_admin.conf (pour la redirection des outils de supervision) et reload_datadir.conf (redirection et sécurisation pour le web service talend de rechargement du catalogue geoserver). - La partie SSL n'est pas réalisée car nous disposons déjà d'un certificat officiel. Pour une installation vierge on peut suivre la documentation (https://github.com/georchestra/georchestra/blob/15.06/doc/setup/apache.md#ssl-certificate) ou bien s'appuyer sur les notes ci-après (pour mémoire) : - cd /var/www/georchestra/ssl (plus d'info sur ssl : http://www.linux-france.org/prj/edu/archinet/systeme/ch24s03.html) - une demande de certificat officiel est effectuée (https://intranet6.inra.fr/systemes-information/Offre-de-service/Services-techniques-pour-les-applications/Certificat-de-securite-pour-serveurs) A défaut on peut générer son propre certificat : - Génération clé privée : openssl genrsa -des3 -out georchestra.key 1024 (passw phrase = non stocké dans ce document) - Génération demande de signature de certificat : openssl req -new -key georchestra.key -out georchestra.csr : - Renseigner tous les champs et surtout le FQDN en lien avec le nom du serveur qui utilisera le certificat : ids-bas-portail.nancy.inra.fr - Génération d'une clé (non protégée) : openssl rsa -in georchestra.key -out georchestra-unprotected.key - Génération du certificat signé par la clé privée : openssl x509 -req -days 365 -in georchestra.csr -signkey georchestra.key -out georchestra.crt - La récupération des applications non déployées par Georchestra (notamment pour une migration) : - /data/admin - /data/sviewer - /data/ids_ressources - redémarrage pour prise en compte : service apache2 restart - insserv apache2 (pour redémarrage automatique du service) - a2dismod auth_cas : pour pallier un bug qui empêche apache de démarrer avec très peu d'information en retour - il faudra analyser si ce module est important) 24/09/2015 (Alain Benard) *** INSTANCES TOMCAT *** - modification du mot de passe du keystore : keytool -storepasswd -new nouveaumdp -storepass ancienmdp -keystore /etc/tomcat8/keystore - suppression de la clé puis régénération : - keytool -delete -alias "georchestra_localhost" -keystore /etc/tomcat8/keystore - keytool -genkey -alias georchestra_localhost -keystore /etc/tomcat8/keystore -storepass motpassemagasin -keypass motpassecle -keyalg RSA -keysize 2048 -dname "CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=FR" (les 2 mots de passe doivent être identiques) - keytool -export -keystore /etc/tomcat8/keystore -alias georchestra_localhost -file /etc/tomcat8/georchestra.crt (Exportation de ce certificat en vue de l'importer dans le geoserver) - avant de déployer de nouvelles instance on modifie la configuration de base qui sera dupliquée /usr/share/tomcat8/skel/conf/ fichiers server.xml (mot de passe keystore) + tomcat-users.xml (mots de passe utilisateur tomcat) - Creation tomcat instances (cd /root/tomcat8): 1 : create-instance-tomcat8-https.sh 8080 8005 8443 tomcat8-instance1 2 : create-instance-tomcat8-https.sh 8081 8006 8444 tomcat8-instance2 3 : create-instance-tomcat8-https.sh 8082 8007 8445 tomcat8-instance3 - Personnalisation des instances tomcat : contrairement à ce qui était fait en version 14.06 avec un stockage de la personnalisation dans les fichiers setenv.sh nous utilisons maintenant les fichiers /etc/defautl/tomcat8-instanceNN, la syntaxe restant la même (le mot de passe associé au keystore est à modifier dans tous ces fichiers). - 1 : Ajout de la ligne "export JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -Xms512m -Xmx1G -XX:MaxPermSize=256m "" sous /etc/default/tomcat8-instance1. - 2 : Ajout des lignes sous /etc/default/tomcat8-instance2 : export JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -Xms1G -Xmx3G -XX:MaxPermSize=256m " export JAVA_OPTS="$JAVA_OPTS -Djava.util.prefs.userRoot=/tmp -Djava.util.prefs.systemRoot=/tmp" La documentation (https://github.com/georchestra/georchestra/blob/15.06/doc/setup/tomcat.md) précise que pour l'instance hébergeant ldapadmin le connecteur doit contenir : proxyName="ids-bas-portail.nancy.inra.fr" proxyPort="80" - 3 : Ajout des lignes sous /etc/default/tomcat8-instance3 : export JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -Xms2G -Xmx4G -XX:MaxPermSize=256m " export JAVA_OPTS="$JAVA_OPTS -Dgeonetwork.dir=/data/geonetwork/gn_data -Dgeonetwork.schema.dir=/var/lib/tomcat8-instance3/webapps/geonetwork/WEB-INF/data/config/schema_plugins -Dgeonetwork.jeeves.configuration.overrides.file=/var/lib/tomcat8-instance3/webapps/geonetwork/WEB-INF/config-overrides-georchestra.xml" #Ci-apres configuration en cas de deploiement geonetwork ou extractor export JAVA_OPTS="$JAVA_OPTS -Djava.util.prefs.userRoot=/var/lib/tomcat8-instance3/temp -Djava.util.prefs.systemRoot=/var/lib/tomcat8-instance3/temp" *** NATIVES LIBRARIES *** GDAL et certaines librairies de liaison sont nécessaires (ou étendent le nombre de format supportés) au fonctionnement de certains logiciels de la pile georchestra (mapfishapp, geoserver et extractor) - apt-get install libgdal1h (la documentation georchestra indique le paquet libgdal1) - Récupération (depuis la machine hébergeant les sources ayant fait l'objet d'une installation des natives_libs conformément à la documentation georchestra) du dossier /data/native_lib_15_06 et mise en place sous /data/sig/gdal - Prise en compte des natives librairies pour l'instance hébergeant mapfishapp (/etc/default/tomcat8-instance2) : - #Issu version 14.06 export LD_LIBRARY_PATH="/lib:/usr/lib/:/data/sig/gdal/NativeLibs/:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH=/usr/lib/jni:/var/sig/gdal/NativeLibs/:$LD_LIBRARY_PATH export GDAL_DATA="/data/sig/gdal/gdal-data" - La partie concernant le fichier catalina.properties dans la documentation n'a pas été réalisée car elle semble douteuse et brouillon (à revoir si des problèmes surviennent après déploiement) *** Scripts de déploiement et divers*** - Mise en place du script de déploiement des applications java (https://svngeodb.nancy.inra.fr/svn/scripts/trunk/serveurs%20virtuels/installations/georchestra/) Dans notre cas le dossier /data/scripts est simplement récupéré depuis la machine à migrer - lancement du script confiance.sh - personnalisation des scripts de déploiement selon le contexte et pour prendre en compte les changements de version (de tomcat et de georchestra) impliquant de nouveaux chemins pour le deploiement. - Mise en place dossier de travail geonetwork : - mkdir -p /data/geonetwork/gn_data - chown tomcat8:tomcat8 /data/geonetwork/gn_data - Pour une nouvelle installation il faudra récupérer un data_dir Geonetwork vide depuis Github tandis que pour la migration on procédera à la récupération de ce data_dir depuis la machine à migrer (probablement à froid [geonetwork éteint]) - Configuration messagerie (notamment pour les logs serveur et monit ...) - Configuration pour l'envoi de mail : - dpkg-reconfigure exim4-config - test du mail : mail -s testab alain.benard@nancy.inra.fr - Configuration des montages (sauvegarde) *** MONITORING *** - Installation de monit pour superviser le serveur. - apt-get install monit - configuration de base de monit : - récupération ou personnalisation de /etc/monit/monitrc - récupération ou création de fichier de configuration (/etc/monit/conf.d) Dans notre cas il y a récupération et modification pour prendre en compte le changement de version de tomcat et la taille mémoire réellement allouée à chaque instance. --------------------------------------------------------------------------------------------------- 02/10/2015 (Alain Benard) - Mise en place de l'authentification mutuelle entre front office et back office (cf https://www.esup-portail.org/plugins/viewsource/viewpagesrc.action?pageId=132710411) Importation du certificat du geoserver précedemment exporté depuis geoserver en geoserver.crt: - copie du fichier crt dans /etc/tomcat8 - cd /etc/tomcat8 - keytool -import -keystore /etc/tomcat8/keystore -alias geoserver -file geoserver.crt 22/12/2015 (Alain Benard) - Montages pour les sauvegardes : - Mise en place du script de montage pour les sauvegardes (récupération de /root/tools/montage.sh qui effectue les montages sous /export/etc et /export/data) - Création de la structure nécessaire aux montages - mkdir -p /export/etc - mkdir -p /export/data - modification de /etc/crontab pour planifier l'exécution journalière du script de montage - apt-get install nfs-kernel-server + personnalisation ou récupération du fichier /etc/exports