Wiki
Clone wikideployment / ssh / InstallationSSHEtExecutionDuServeur
Installation sur la VM
Organisation cible
Le processus de déploiement structure les applications déployées de la manière suivante sur la VM.
- 1 répertoire racine contient TOUTES les applications.
- 1 répertoire par application
- 1 répertoire par version
- 1 lien virtuel pour la dernière version installée (latest).
Toutes les versions des applications sont gardées afin de faciliter les retours arrières et les analyses de logs.
Exemple de structuration sur la VM: - /applications - /monster-tickets - /monster-ticket-1.0 - /monster-ticket-2.3 - /latest (-> ./monster-ticket-2.3) - /myapp - /myapp-1.1 - /latest (-> ./myapp-1.1)
Le répertoire racine des applications est définit par le paramètre d'environnement ssh.directory.
Exemple:
ssh.directory=/applications
Par rapport aux propriétés maven, le déploiement est fait dans:
${ssh.directory}/${project.artifactId}/
Installation du serveur
Le serveur JBoss et ses applications sont téléchargées dans un zip unique dans le répertoire ssh.directory .
Ce fichier est accompagné du fichier install.sh qui sera exécuté pour installer le serveur à partir du zip.
Ces 2 fichiers sont uploadés su le serveur en : - install-${project.build.finalName}.sh pour le fichier install.sh - ${project.build.finalName}-run.zip pour le fichier zip.
Ces 2 fichiers sont alors dans: - /${ssh.directory} - /${project.artifactId} - /install-${project.build.finalName}.sh - ${project.build.finalName}-run.zip
Le fichier install.sh du projet de déploiement peut être modifié. Cependant, il est préférable de ne pas "casser" le principe de déploiement.
Exemple de fichier install.sh.
Exécution des instances
Quelque soit la nature du serveur JBoss à exécuter, celui-ci est contrôlé par 2 scripts:
- start.sh
- stop.sh
Ces scripts sont OBLIGATOIRES. Il sont gérés dans le projet dans le répertoire scr/run/.
Ces scripts peuvent utiliser des variables afin de paramétrer leur exécution en fonction des environnements.
Exemple de start avec les variables - jboss.offset: pour un décalage des ports - jboss.javaopts: pour la définition de la mémoire et des autres paramètres JVM
#!/bin/sh export JBOSS_HOME=$(pwd) export OFFSET=${jboss.offset} export JAVA_OPTS="${jboss.javaopts}" export JAVA_HOME=$JAVA8_HOME export JAVA=$JAVA_HOME/bin/java # start with an offset $JBOSS_HOME/bin/standalone.sh -c standalone.xml -Djboss.socket.binding.port-offset=$OFFSET
Exemple de stop.sh avec les varaibles: - jboss.port.management: pour le port de gestion distant.
#!/bin/sh JBOSS_HOME=$(pwd) JBOSS_REMOTE_PORT=${jboss.port.management} JBOSS_RUNNING=$(ps -ef | grep "Djboss.home.dir=$JBOSS_HOME" | grep -v grep | wc -l) if [ $JBOSS_RUNNING -gt 0 ]; then echo "Stopping JBoss..." # stop without offset $JBOSS_HOME/bin/jboss-cli.sh --controller=localhost:$JBOSS_REMOTE_PORT --connect --command=:shutdown echo "JBoss stop." else echo "JBoss in $JBOSS_HOME is still stopped." fi
Updated