jBoss EAP 6.2 – Déployer des applications par script avec la console CLI

Déployer une application par la console CLI de JBOSS
Pierre LISERONMis à jour le 7 Janv 2014

Dans cet article nous allons voir comment deployer des applications WAR ou EAR avec la CLI (Command Line Interface) de jBoss.

Il est souvent nécessaire pour se faciler lexploitation de serveur jBoss, de scripter (en bash par exemple) un certain nombre détapes. JBoss met à disposition un console (CLI) qui permet dexécuter des scripts en mode line de commande ou batch. CLI est très puissante et permet de faire énormement de manipulation du serveur. Il est presque possible de modifier lintégralité des configurations du serveur à chaud.

Ouverture de la console CLI

Afin de permettre à vos scripts de pouvoir être exécutés par jBoss, il faut ouvrir le port de management de jBoss. Dans le fichier standalone.xml, modifier la ligne jboss.bind.address.management

par

 

Ainsi le jboss écoutera sur toutes les adresses ip. Il est possible de sécuriser cette adresse en choisissait une adresse ip différente de celle quécoute le port HTTP et AJP.

Pour plus dinformation sur la connexion CLI et la sécurisation

Créer et déployer des scripts de déployement

Vous pouvez utiliser deux solutions pour interagir avec JBoss.

  • En mode interactif
  • En mode Batch (par lintermédiare dun fichier)

Nous allons utiliser le mode batch avec un fichier car ceci savère plus simple. Lidée principale est de créer un fichier listant toutes les instructions que nous voulons faire faire par le jBoss.

Lidée de cette méthode est de demander à lutilisateur du script, le fichier war (path et nom du fichier) à déployer. Une fois ces informations demandées et vérifier, il suffit de créer un fichier temporaire (ici script.cli) avec les instructions suivantes.

  • connect qui permet de se connecter à la base de données
  • deploy qui permet de déployer un war passé en paramètre
#Permet de deployer un war
deploy_war(){
   echo "Veuillez saisir le fichier war deployer."
   read war_file
   while [ ! -f $war_file ]; do
   echo "Le fichier $war_file n’existe pas."
   echo "Veuillez resaisir le fichier war deployer."
   read war_file
   done
   #Ici on crée le script dans un répertoire en cancatenant les instructions
   echo "connect 127.0.0.1:9999" > /tmp/script.cli
   echo "deploy $war_file" >> /tmp/script.cli
   "$PARH_TO_JBOSS/bin/jboss-cli.sh"--file=/tmp/script.cli;
}

Et voilà, nous avons créé une méthode bash qui permet de déployer un war sur un jboss par lintermédiaire dun script.

Avec cette stratégie, il est facile de scripter dautres fonctionnalités, par exemple, lister les datasources, ou en activer une.