Scripting Jython avec wsadminlib

mercredi 26 mai 2010
par Luc-Michel Demey

Depuis la version 6.0, le jython est le langage officiel de scripting pour WAS.
Le jython est un langage puissant, avec une syntaxe complexe. De plus, la documentation correspondant aux commandes wsadmin est assez difficile à localiser dans l’Infocenter IBM.

L’administrateur WAS qui souhaite scripter la création d’un serveur d’application et de ses ressources peut rapidement se retrouver avec des scripts compliqués à développer et difficiles à maintenir. De plus, il y a peu d’exemples disponibles en ligne (à part le fichier wsadminJythonExampleScripts.zip).

Pour les sites en WAS version 6.1 ou 7.0, il y a maintenant une ressource IBM très intéressante disponible en ligne. Il s’agit du package wsadminlib. Ce package encapsule la plupart des fonctions courantes de scripting, comme la création de serveurs et de clusters, la configuration de propriétés, l’interrogation d’attributs, ...
Il y a plus de 500 méthodes disponibles pour environ 9000 lignes de jython.

Il y a deux manières d’utiliser ce package :

  • En extrayant le bloc de code correspondant à une méthode, pour le réutiliser dans un script spécifique
  • En utilisant, à partir d’un script, les fonctions disponibles dans ce package (ce qui est la meilleure solution !)

Chaque méthode est appelée avec les paramètres nécessaires, et le résultat de la fonction peut être récupéré dans une variable. Un système de log des opérations effectuées est également disponible.

Exemple d’utilisation pour créer un cluster avec deux serveurs :

#  Création d'un cluster de deux serveurs sur le même node
#  LM Demey - 25/05/2010
#  Ce script a été testé en WAS 7.0 et utilise la bibliothèque wsadminlib.
#  Mode d'appel (depuis le bin du profil ou du Dmgr) : wsadmin -lang jython -f fichier.py
#  Exemple :  wsadmin -user was -password was -lang jython -f C:\LMD\create_clu.py
#  Ce script n'attend pas de paramètres.
#-----------------------------------------------------------------
#
# il faut que wsadminlib.py soit accessible, le chemin doit être complet.
execfile('C:\LMD\New\wsadminlib.py')
# Recherche de la cellule
cellname = getCellName()
print "La cellule est " + cellname + "."
# Création d'un cluster
clustername = "CLU01"
# Suppression du cluster if any
print "Suppression éventuelle du cluster " + clustername + " ..."
deleteServerClusterByName( clustername )
createCluster( cellname, clustername, createReplicationDomain = False )
# Création des serveurs
servername = "CLU01_S1"
nodename = "node01"
print "Création du serveur d'application " + servername + " sur le node " + nodename + " ..."
createServerInCluster(clustername, nodename, servername,sessionReplication = False)
print "Création du serveur d'application " + servername + " sur le node " + nodename + " OK"
#
servername = "CLU01-S2"
nodename = "node01"
print "Création du serveur d'application " + servername + " sur le node " + nodename + " ..."
createServerInCluster(clustername, nodename, servername,sessionReplication = False)
print "Création du serveur d'application " + servername + " sur le node " + nodename + " OK"
#
AdminConfig.save()
print "Sauvegarde de la configuration OK"
print "--- Fin du script ---"

Exemple de sortie du script ci-dessus :


wsadmin -lang jython -f create_clu.py

WASX7209I: Connecté au processus "dmgr" sur le noeud LMD70Dmgr en utilisant le connecteur SOAP. Le type de processus est : DeploymentManager
$Id: wsadminlib.py 104 2010-02-15 19:06:18Z dingsor $
La cellule est LMD70.
Suppression éventuelle du cluster CLU01 ...
Création du serveur d'application CLU01_S1 sur le node node01 ...
Création du serveur d'application CLU01_S1 sur le node node01 OK
Création du serveur d'application CLU01-S2 sur le node node01 ...
Création du serveur d'application CLU01-S2 sur le node node01 OK
Sauvegarde de la configuration OK
--- Fin du script ---

Le package wsadminlib est téléchargeable à partir de la page :
http://www.ibm.com/developerworks/websphere/library/samples/
Il existe également un blog, animé par les auteurs du package, qui propose des cas d’utilisation : http://wsadminlib.blogspot.com/

Bon scripting !


Brèves

27 mars - MQ-CPH Performance Harness

Le laboratoire IBM d’Hursley a rendu disponible sur Github un outil de simulation de charge pour (...)

1er mars - Mise à jour du SupportPack MH06 : WebSphere MQ - Trace Tools

Le MH06 est un SupportPack qui propose des outils en mode ligne qui aident à analyser les (...)

2 février - IBM MQ : désactivation de nouveaux CipherSpecs SSL/TLS

IBM Annonce que de nouveaux CipherSpecs sont considérés comme "faibles", et à ce titre seront (...)

1er février -  MQ Technical Conference v2.0.1.7

La MQ Technical Conference v2.0.1.7, organisée par Capitalware, se tiendra du 25 au 27/09/2017 (...)

31 janvier - Annonce du FixPack 8.0.0.6 pour IBM MQ 8.0

IBM annonce ce jour la disponibilité du FixPack 6 pour MQ version 8.0.

19 janvier - Annonce du FixPack 7.1.0.8 pour WebSphere MQ V7.1

IBM annonce ce jour la disponibilité du FixPack 8 pour WMQ version 7.1.
Rappel : La fin de (...)