AXOPEN

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

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 l’exploitation de serveur jBoss, de scripter (en bash par exemple) un certain nombre d’étapes. JBoss met à disposition un console (CLI) qui permet d’exé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 l’inté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 d’information 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 l’intermédiare d’un fichier)

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

L’idée de cette méthode est de demander à l’utilisateur 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 l’intermédiaire d’un script.

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