meta données pour cette page
  •  

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
info:geonetwork:geonetwork-jre8 [2017/06/10 07:34:26] – [remplacer la BDD H2 par une bdd postgres ou postgis] cmartininfo:geonetwork:geonetwork-jre8 [2017/06/12 07:19:04] (Version actuelle) – [remplacer la BDD H2 par une bdd postgres ou postgis] cmartin
Ligne 10: Ligne 10:
 ===== Installation openjdk-8-jre-headless ===== ===== Installation openjdk-8-jre-headless =====
  
-Installation préalable de optnjdk-7. pour des histoires de dépendance de paquet. Puis il faut installer manuellement ca-certificates-java_20161107_all.deb, sinon, on ne pourra pas installer openjdk-8, à cause de conflits entre ca-certificates-java et openjdk-8. Solutionaller chercher manuellement le paquet sur [[https://packages.debian.org/sid/all/ca-certificates-java/download|packages.debian.org]] dans unstableinstaller le paquet.+Geonetwork 3.2.1 nécessite java 8, mais à cette date, juin 2017, java 8 n'est disponible que dans les backports de la prochaine version vers la version stable (jessie 8.8). On a donc un petit peu de travail pour installer java8. 
 + 
 +Installation préalable de openjdk-7. pour des histoires de dépendance de paquet. Puis il faut installer manuellement ca-certificates-java_20170531_all.deb, sinon, on ne pourra pas installer openjdk-8, à cause de conflits entre ca-certificates-java et openjdk-8. Solution aller chercher manuellement le paquet sur [[https://packages.debian.org/sid/all/ca-certificates-java/download|packages.debian.org]] dans unstable puis installer le paquet manuellement. Le nom exact du paquet peut varier, par exemple en fonction 
 +des révisions du paquet, d'où les lignes barbares ''exactname=$(...)'' 
 +ci dessous.
  
 <code bash> <code bash>
 apt install openjdk-7-jre-headless apt install openjdk-7-jre-headless
-wget http://ftp.fr.debian.org/debian/pool/main/c/ca-certificates-java/ca-certificates-java_20161107_all.deb +exactname=$( 
-dpkg -i ca-certificates-java_20161107_all.deb+  wget -O - http://ftp.fr.debian.org/debian/pool/main/c/ca-certificates-java/ 
 +  sed -ne 's/.*href="\(ca-certificates-java_20170531[^"]*.deb\).*/\1/p' 
 +
 +wget http://ftp.fr.debian.org/debian/pool/main/c/ca-certificates-java/$exactname 
 +dpkg -i $exactname
 </code> </code>
  
Ligne 24: Ligne 32:
 apt update && apt install openjdk-8-jre-headless apt update && apt install openjdk-8-jre-headless
 apt purge openjdk-7-jre-headless # plus besoin maintenant. apt purge openjdk-7-jre-headless # plus besoin maintenant.
-update-alternatives --config java+update-alternatives --config java # normalement inutile, il ne reste que java 8
 </code> </code>
  
Ligne 71: Ligne 79:
 ===== remplacer la BDD H2 par une bdd postgres ou postgis ===== ===== remplacer la BDD H2 par une bdd postgres ou postgis =====
  
-Quoi qu'on fasse geonetwork crée initialement une base de données h2. Comme l'environnement est encore vide, on va la remplacer par une base de données postgis ou postgres. Il me semble que selon une doc de geonetwork, ça n'est intéressant que si on a plusieurs dizaine de milliers de fiche. C'est pas notre cas (enfin à moi, hein), mais tout mettre dans une base de stype SQL, ça me rassure, car je sais les cloner, sauvegarder, restaurer, dupliquer, et éventuellement modifier en ligne de commande, alors que je suis moins à l'aise avec une base h2. Lorsqu'on utilise une base postgres simple, geonetwork utilise toujours un fichier pour son index spatial, avec une base postgres munie de l'extension postgis et une configuration adéquate de geonetwork, l'index spatial est également géré par le moteur de base de données.+Quoi qu'on fasse geonetwork crée initialement une base de données h2. Comme l'environnement est encore vide, on va la remplacer par une base de données postgis ou postgres. Il me semble que selon une doc de geonetwork, ça n'est intéressant que si on a plusieurs dizaine de milliers de fiches. C'est pas notre cas (enfin à moi, hein), mais tout mettre dans une base de stype SQL, ça me rassure, car je sais les cloner, sauvegarder, restaurer, dupliquer, et éventuellement modifier en ligne de commande, alors que je suis moins à l'aise avec une base h2. Lorsqu'on utilise une base postgres simple, geonetwork utilise toujours un fichier pour son index spatial, avec une base postgres munie de l'extension postgis et une configuration adéquate de geonetwork, l'index spatial est également géré par le moteur de base de données.
  
 Si vous n'avez pas de serveur postgres sous la main, vous pouvez en installer un très rapidement, en suivant les instructions [[#installer un serveur postgres si besoin|à la fin de cette page]]. Si vous n'avez pas de serveur postgres sous la main, vous pouvez en installer un très rapidement, en suivant les instructions [[#installer un serveur postgres si besoin|à la fin de cette page]].
  
-Astuce : faites des copier coller de chaque grand blocils sont fait exprès pour ça.+Les fichiers mentionnés ici sont relatifs à la base du déploiement de geonetworkAinsi quand on parle de ''WEB-INF/config-node/srv.xml'', si vous avez déposé le war de geonetwork dans ''/var/lib/tomcat8/webapps/geonetwork.war'' il s'agit de ''/var/lib/tomcat8/webapps/geonetwork/WEB-INF/config-node/srv.xml''
  
 +  - Rassembler les informations de connexion :
 +    * nom du serveur de base de données : ''monserveur.mon-univ.fr'', ''localhost'',...
 +    * port de connexion : 5432 dans 99,99% des cas
 +    * nom de la base de données
 +    * utilisateur de connexion à la base
 +    * mot de passe de connexion
   - Arrêter tomcat8<code bash>systemctl stop tomcat8</code>   - Arrêter tomcat8<code bash>systemctl stop tomcat8</code>
-  - Fixer dans le shell courant qq variables qui correspondent à votre serveur de base de données. ça peut même être un serveur local sur la même machine. Ces variables vont faciliter la création des fichiers de configuration<code bash> +  - Utiliser au choix, postgres seul ou postgres + postgis. Il faut commenter/décommenter quelques lignes dans le fichier WEB-INF/config-node/srv.xml
-TOMCAT_GEONETWORK_BASE_DIR=/var/lib/tomcat8/webapps/geonetwork +    * Pour le pilote postgres seuldécommentez la ligne ''<import resource="../config-db/postgres.xml"/>'' et commentez les autres. Le résultat est à peu près ça <file xml WEB-INF/config-node/srv.xml>
-DB_USER=ugeodb                          # Ce sont des valeurs +
-DB_PASSWORD=doqu2she8LooQu              # d'exemple. +
-DB_NAME=geonetwork                      # Remplacez les par les +
-DB_SERVEUR=postgres-serveur.mon-univ.fr # valeurs correspondant  +
-DB_PORT=5432                            # à votre installation. +
-</code> +
-  - définir cette fonction dans le shell couranttoujours pour faciliter les choses<code bash> +
-cf() { +
-  cat >"$TOMCAT_GEONETWORK_BASE_DIR/$1" +
-  chown tomcat8: "$TOMCAT_GEONETWORK_BASE_DIR/$1" +
-+
-</code> +
-  - Utiliser au choix, le postgres ou postgis +
-    * Pour le pilote postgres<code bash> +
-# utilisation de postgres +
-cf WEB-INF/config-node/srv.xml <<'EOH'+
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
 <beans default-lazy-init="true" <beans default-lazy-init="true"
Ligne 118: Ligne 116:
     <import resource="../config-db/postgres.xml"/>     <import resource="../config-db/postgres.xml"/>
     <!--<import resource="../config-db/sqlserver.xml"/> -->     <!--<import resource="../config-db/sqlserver.xml"/> -->
-        <!--<import resource="../config-db/postgis.xml"/> -->+    <!--<import resource="../config-db/postgres-postgis.xml"/> -->
 </beans> </beans>
-EOH +</file
-</code+    * ou, pour l'utilisation du couple postgre-postgis, la seule ligne non commentée est ''<import resource="../config-db/postgres-postgis.xml"/>'' et le résultat sera<file xml WEB-INF/config-node/srv.xml>
-    * ou utilisation du pilote postgis <code bash> +
-# utilisation de postgis +
-cf WEB-INF/config-node/srv.xml <<'EOH'+
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
 <beans default-lazy-init="true" <beans default-lazy-init="true"
Ligne 147: Ligne 142:
     <!--<import resource="../config-db/postgres.xml"/>-->     <!--<import resource="../config-db/postgres.xml"/>-->
     <!--<import resource="../config-db/sqlserver.xml"/> -->     <!--<import resource="../config-db/sqlserver.xml"/> -->
-    <import resource="../config-db/postgis.xml"/>+    <import resource="../config-db/postgres-postgis.xml"/>
 </beans> </beans>
-EOH +</file
-</code+  - Configuration de l'accès à la base, postgres ou postgis. Même configuration. Il faut juste changer et ajuster les valeurs des propriétés relatives à la connexion à la base de données. Ce sont les 5 premières. Voilà à quoi pourrait ressembler ce fichier<file ini WEB-INF/config-db/jdbc.properties> 
-  - Configuration de l'accès à la base, postgres ou postgis. Même configuration<code bash> +jdbc.username=ugeonet 
-message "configuration de l'accès à la base de données postgis" +jdbc.password=jaikee9Tejopoo 
-cf WEB-INF/config-db/jdbc.properties <<EOH +jdbc.database=geonetdb 
-jdbc.username=$DB_USER +jdbc.host=bdds.mon-univ.fr 
-jdbc.password=$DB_PASSWORD +jdbc.port=5432
-jdbc.database=$DB_NAME +
-jdbc.host=$DB_SERVEUR +
-jdbc.port=$DB_PORT+
 jdbc.basic.removeAbandoned=true jdbc.basic.removeAbandoned=true
 jdbc.basic.removeAbandonedTimeout=120 jdbc.basic.removeAbandonedTimeout=120
Ligne 177: Ligne 169:
 jdbc.basic.defaultAutoCommit=false jdbc.basic.defaultAutoCommit=false
 EOH EOH
-</code>+</file>
   - redémarrage du serveur tomcat8<code bash>   - redémarrage du serveur tomcat8<code bash>
 systemctl start tomcat8 systemctl start tomcat8
Ligne 184: Ligne 176:
 ===== Installer un serveur postgres si besoin ===== ===== Installer un serveur postgres si besoin =====
  
-Vous n'avez pas de serveur postgrespas grave. Installez en un sur votre serveur super rapidement :+Vous n'avez pas de serveur postgres pas grave. Installez en un sur votre serveur super rapidement :
  
   - Installation du serveur<code bash>apt install postgresql   - Installation du serveur<code bash>apt install postgresql
Ligne 204: Ligne 196:
 exit exit
 </code> </code>
-  - Les paramètres de connexion seront alors\\ :!: insérer le mot de passe que vous venez de définir:<file bash+  - Les paramètres de connexion à renseigner dans le fichier WEB-INF/config-db/jdbc.properties seront alors\\ :!: insérer le mot de passe que vous venez de définir:<file ini
-DB_USER=ugeonetdb +jdbc.username=ugeonetdb 
-DB_NAME=dbgeonetwork +jdbc.password=Mettez ici le mot de passe de la BBD que vous venez de définir. 
-DB_SERVEUR=localhost +jdbc.database=dbgeonetwork 
-DB_PORT=5432 +jdbc.host=localhost 
-DB_PASSWORD="Mettez ici le mot de passe de la BBD que vous venez de definir."+jdbc.port=5432
 </file> </file>
   - Vous pouvez alors retourner à [[#remplacer la BDD H2 par une bdd postgres ou postgis]] et poursuivre.   - Vous pouvez alors retourner à [[#remplacer la BDD H2 par une bdd postgres ou postgis]] et poursuivre.