8 déc. 2019, 22:28:42 Thomas Dumont

Déployer sur Openshift

Image

Utilisez openshift pour héberger des applications lutece : https://www.openshift.com/
Créez un compte sur le site Web, puis utilisez l’outil de ligne de commande rhc https://developers.openshift.com/fr/managing-client-tools.html

  • Créez une application tomcat7 :

    $ rhc create-app démo jbossews-2.0
    
  • Ajouter mysql :

    $ rhc cartridge-add -a demo mysql-5.5
    
  • Remplacez le fichier pom.xml dans le projet généré par un site lutece-pom.xml et développez votre site lutece (par exemple utilisez lutece WebappStore http://fr.lutece.paris.fr/fr/jsp/site/Portal.jsp?page=appstore)

  • Dire comment construire des wars lutèce

Définissez une variable d’environnement avec rhc pour cette application :

$ rhc env-set -a démo -e MAVEN_ARGS=""nettoyer lutece:site-assembly -Popenshift""

Vous pouvez également ajouter le fichier exécutable suivant au référentiel pour qu’il fonctionne avec toutes les applications de travail ouvertes.

$ ls -l .openshift/action_hooks/pre_build
-rwxrwxr-x 1 jon jon 47 juil. 21 19:39 .openshift/action_hooks/pre_build
$ cat .openshift/action_hooks/pre_build
export MAVEN_ARGS=""nettoyer lutece:site-assembly -Popenshift""
  • Modifier le fichier server.xml par défaut pour unpackWars :
diff -git a/.openshift/config/server.xml b/.openshift/config/server.xml
index 70f0514..727be57 100644
--- a/.openshift/config/server.xml
+++ b/.openshift/config/server.xml
@@ -124,7 +124,7 @@
       </Realm>

       <Host name=""localhost"" appBase=""webapps""
- unpackWARs=""false"" autoDeploy=""true"]" >
+ unpackWARs=""true"" autoDeploy=""true"]" >

         <!-- Valve SingleSignOn, partage de l'authentification entre les applications Web
              Documentation sur: /docs/config/valve.html -->
  • Utiliser le pool de connexion tomcat par défaut de openshift :
diff -git a/webapp/WEB-INF/conf/db.properties b/webapp/WEB-INF/conf/db.properties
new file mode 100644
index 0000000..b3d7a07
--- /dev/null
+++ b/webapp/WEB-INF/conf/db.properties
@@ -0,0 +1,2 @@
+ portal.poolservice=fr.paris.lutece.util.pool.service.TomcatConnectionService
+ portal.ds=jdbc/MySQLDS
  • Générez le war dans le bon dossier avec le nom correct :
diff -git a/pom.xml b/pom.xml
index bd894b7..6efadfe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,6 +48,23 @@
                 </plugins>
             </build>
         </profile>
+ <profile>
+ <id>openshift</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>fr.paris.lutece.tools</groupId>
+ <artifactId>lutece-maven-plugin</artifactId>
+ <version>4.0.1</version>
+ <extensions>true</extensions>
+ <configuration>
+ <finalName>ROOT</finalName>
+ <outputDirectory>webapps</outputDirectory>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
     </profiles>
     <repositories>
         <repository>
  • Télécharger une image de base de données initiale :
$ rhc scp démo télécharger sitedemo.sql app-root/données

Pour obtenir le vidage initial de la base de données, vous pouvez par exemple lancer le site sur la machine locale (mvn lutece:site-assembly, configurer la base de données, exécuter ant dans le dossier target/WEB-INF/sql) et lancer mysqldump.

  • ssh et charge la décharge :
$ rhc ssh demo
$ demo mysql < app-root/data/sitedemo.sql
  • git commit et poussez tout (s’il y a un timeout lors de la construction sur openshift, ajoutez un retour à la ligne dans un fichier et poussez à nouveau)