Précédent   Forum du club des développeurs et IT Pro > Java > Serveurs, conteneurs, et Java EE > Websphere
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 06/06/2008, 16h41   #1
simoben
Invité de passage
 
Inscription : mai 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 7
Points : 1
Points : 1
Par défaut Script de déploiement automatique

bonjour,

je suis actuellement en stage. et je dois réaliser un script de déploiement automatique. je vois que certains d'entre eux y sont parvenus.

je développe une application j2ee sous websphere eclipse. et je dois donc la déployer sur un serveur automatiquement.

est-ce que les scripts qui figurent au-dessus peuvent m'être d'une quelconque aide. je suis entrain de découvrir.

donc si quelqu'un peut m'aider.

Merci d'avance.
simoben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 16h55   #2
Jacques - 06
Membre éprouvé
 
Inscription : janvier 2006
Messages : 352
Détails du profil
Informations personnelles :
Âge : 46
Localisation : Suisse

Informations forums :
Inscription : janvier 2006
Messages : 352
Points : 419
Points : 419
En effet ces scripts doivent te permettre de faire un déploiement automatisé. Pour les mettre au point assure-toi de savoir faire le déploiement en mode manuel, le mieux étant d'activer dans le premiers écrans l'affichage de toutes les étapes (ainsi tu verras les options par défaut qui sont renseignées).

Dans un second temps réalise ton install en ligne de commande avec wsadmin. Il te suffira alors de reproduire les commandes dans ton script ant.

Jacques Desmazières
Jacques - 06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 10h27   #3
simoben
Invité de passage
 
Inscription : mai 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 7
Points : 1
Points : 1
merci pour votre aide.

j'ai effectivement toutes les démarches à faire pour le déploiement en manuel. j'y suis arrivé. c'est fastidieux à faire, mais j'y suis arrivé, avec tous les mappings à faire.

par contre j'ai pas bien compris. que voulez-vous dire par :
1- "le mieux étant d'activer dans le premiers écrans l'affichage de toutes les étapes".

2- "réalise ton install en ligne de commande avec wsadmin. Il te suffira alors de reproduire les commandes dans ton script ant"
j'ai lu la documentation de wsadmin. mais comment on ouvre la ligne de commande sur WSA. et puis surtout comment reproduire les commandes du script. que voulez-vous dire par "reproduitre les commandes du script".

Merci de votre aide, qui m'a vraiment permis, de m'orienter dans mon analyse.
simoben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 14h29   #4
Jacques - 06
Membre éprouvé
 
Inscription : janvier 2006
Messages : 352
Détails du profil
Informations personnelles :
Âge : 46
Localisation : Suisse

Informations forums :
Inscription : janvier 2006
Messages : 352
Points : 419
Points : 419
Citation:
Envoyé par simoben Voir le message
"le mieux étant d'activer dans le premiers écrans l'affichage de toutes les étapes".
Lors de l'installation, sur le 1er écran tu as le radio-button 'Comment voulez-vous installer l'application ?' Il faut sélectionner 'Me montrer toutes les options et tous les paramètres d'installation.'

Citation:
Envoyé par simoben Voir le message
j'ai lu la documentation de wsadmin. mais comment on ouvre la ligne de commande sur WSA. et puis surtout comment reproduire les commandes du script. que voulez-vous dire par "reproduire les commandes du script".
Tu as un wsadmin.bat dans le répertoire /bin. Pour reproduire les commandes c'est un peu plus compliqué, car tu n'as pas de moyen de 'trapper' les commandes de la console, il faut comprendre ce qui se passe au niveau JMX pour chaque écran de déploiement

Bon courage

Jacques Desmazières
Jacques - 06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 17h11   #5
simoben
Invité de passage
 
Inscription : mai 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 7
Points : 1
Points : 1
merci pour ta réponse.

en fait ce que j'ai fait jusqu'à présent c'est refaire le même script que tu as donné précedement. à savoi, la création des mbeans pour les ressources, fournir un port 'ecoute avec BindJndiForEJBMEssageBinding, les noms JNDI pour les beans BindJndiForEJBNonMEssageBinding, mapping des references ressources avec MapResEnvReftoRes, mapping des modules web vers les serveurs d'application...

est-ce que je suis sur la bonne voie où dois-je me replier sur ce qui se passe niveau JMX.

Une dernière question : une fois que j'ai fini l'ensemble de mes paramètrages (tt les mappages et les etapes du déploiement), je les enregistre sur un fichier texte avec une extension .jacl. est-ce bien çà.

Merci pour tout
simoben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 08h50   #6
Jacques - 06
Membre éprouvé
 
Inscription : janvier 2006
Messages : 352
Détails du profil
Informations personnelles :
Âge : 46
Localisation : Suisse

Informations forums :
Inscription : janvier 2006
Messages : 352
Points : 419
Points : 419
En fait si tu ne fais que du binding, sans modification de la configuration du serveur (création des ressources, virtual host, datasource) tu dois pouvoir tout réaliser avec la command d'installation.

Et là le mieux est de faire l'install interactive et récupérer la commande (il n'y aura alors qu'une commande à exécuter). Tu peux alors créer cette commande dans Ant si tu dois la construire dynamiquement, puis tu utilises le wrapper ant (wsinstall) pour le déploiement.
Sinon, tu enregistres la commande dans un fichier .jacl et tu l'exécute avec le wsadmin en ligne de commande ou depuis Ant

Jacques Desmazières
Jacques - 06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 09h34   #7
simoben
Invité de passage
 
Inscription : mai 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 7
Points : 1
Points : 1
voici en fait la ligne de commande que je compte passer à wsadmin

$AdminApp install D:\RFTB\rftb.ear {-server server1 -installed.ear.destination /usr/WebSphere3/AppServer/installedApps/wsdscer107d31 –cell wsdscer107d31 -node wsdscer107d31}

dans quel cas faut-il que je configure le serveur: création des ressources, virtual host, datasource.?

Voici les différentes etapes ce que je compte faire pour le déploiement automatique:

1- Spécification du chemin d’accès au serveur et du hôte par défaut :
a- spécifier le chemin où se trouve le fichier EAR, que ce soit sur un serveur ou en local
b- Ne pas spécifier de préfixe unique pour les beans
c- Ne pas remplacer les liaisons existantes
d- spécifier le hôte par défaut : global virtualHostName

2- Options d’installation de l’EAR
a- répertoire d’installation de l’EAR
installed.ear.destination x:/….
b- Distribution de l’application
lappend installOptions "-distributeApp"
c- création de Mbeans pour les ressources
CreateMbeansForRessources
d- Intervalle de rechargement de 3 secondes
lappend installOptions "-reloadInterval"

3- Fournir les ports d’écoute :
BindJndiForEJBMessageBinding

les différents mapping que j'ai enoncé dans le précedent post.
et le mappage des modules web avec le hôte virtuel.¨

Par contre, je n'utilise pas :
set dataSourceFor20EJBModules [subst {}]
set dataSourceFor20CMPBeans [subst {}]
set mapModulesToServers [subst {}]
set backendIdSelection [subst {}].

Faut-il que je les utilise? parceque je ne vois pas où cela pourrait me servir.

Dans l'attente de votre réponse.

Cordialement
simoben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2008, 16h22   #8
simoben
Invité de passage
 
Inscription : mai 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 7
Points : 1
Points : 1
Re bonjour
Je pense que j'avance un peu dans mon script.
j'ai juste une question.

pour lancer le script, est-ce que je peux lancer wsadmin.sh directement de mon environement de déploiement et saisir:

Vous trouverez l'image ci-joint de la ligne de commande.

Cordialement
Images attachées
Type de fichier : jpg exemple.JPG (69,3 Ko, 165 affichages)
simoben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 08h20   #9
Jacques - 06
Membre éprouvé
 
Inscription : janvier 2006
Messages : 352
Détails du profil
Informations personnelles :
Âge : 46
Localisation : Suisse

Informations forums :
Inscription : janvier 2006
Messages : 352
Points : 419
Points : 419
De loin cela semble correct, par contre quelle version de WAS utilisez-vous ? A partir de la 6 il faut lancer le wsadmin qui se trouve dans le profil du serveur sur lequel vous déployez, pour les versions précédentes, il n'y en a qu'un seul donc pas de problème.

Pour lancer le wsadmin.sh depuis votre environnement de déploiement, il faudra peut-être exécuter le setupCmdLine.sh afin de positionner les variables d'environnement. Personnellement j'exécute le script toujours à partir du répertoire WAS en fournissant le path complet vers l'ear.

Jacques Desmazières
Jacques - 06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2008, 09h31   #10
simoben
Invité de passage
 
Inscription : mai 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 7
Points : 1
Points : 1
Bonjour,

J'utilise une version 5.1 de WAS.
Il n'y q'un seul wsadmin.sh.
je lance wsadmin directement de mon serveur de déploiement.

par contre une dernière question : est-ce qu'il faut que je spécifie le nom de l'ear dans le scrip ou est-ce que global earFile et global appname les prends directement de la commande passée sur wsadmin, càd est-ce qu'il récupére le repertoire de l'ear, le répertoire du déploiement et le nom de l'application de la commande :
-f "monscript.jacl" $AdminApp install D:\RFTB\rftb.ear {-server server1 -installed.ear.destination /usr/WebSphere3/AppServer/installedApps/wsdscer107d31 –cell wsdscer107d31 -node
wsdscer107d31}

Ou bien faut-il les mentionner directement dans le script.

Merci de votre réponse.
simoben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2012, 13h40   #11
a.elyossri
Invité de passage
 
Homme Abdelilah EL YOSSRI
Administrateur de base de données
Inscription : avril 2012
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Abdelilah EL YOSSRI
Localisation : Maroc

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : avril 2012
Messages : 2
Points : 3
Points : 3
Voici un petit bout de code qui pourrait aider , je l'ai utilisé pour mettre à jour les applis sur WAS 7 ca marche impeccable :
je met ceci dans un fichier sh qui lui appele un fichier .py:

sh /usr/WebSphere7/AppServer/profiles/AppSrv01/bin/wsadmin.sh -lang jython -user tonuser -password ton pass -f /rep/tonfichier.py $1

avec /rep/tonfichier.py : le chemin du script .py qui met à jour l'appli
$1: la chemin de ton fichier ear

contenu du fichier tonfichier.py :


import sys
numberOfArgs = len(sys.argv)
if numberOfArgs < 1:
print "Veuillez revoir les parametres introduits"
else:
#Obtention du nom du ear
filePath1 = str(sys.argv[0])
strAppToInstall = filePath1[filePath1.rfind("/")+1:len(filePath1)];
print "Mise jour de ", strAppToInstall;
#Mise jour de l appli
appToUpdate = ""
appsBefore = AdminApp.list().split("\n");
for iApp in appsBefore:
if str(strAppToInstall).find(iApp) >= 0:
appToUpdate = iApp;
print "Mise jour app: ", appToUpdate
appToUpdate = str(appToUpdate).strip();
print filePath1
AdminApp.update(appToUpdate, 'app', '[-operation update -contents '+filePath1+ ' -usedefaultbindings -nodeployejb ]')
print "Application mise a jour"
AdminConfig.save();
Sync1 = AdminControl.completeObjectName('type=NodeSync,node=AIXDEV02Node01,*')
AdminControl.invoke(Sync1, 'sync')

J'espere quelqu'un vu la date de la question le sujet devra être obselète.
a.elyossri est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h51.


 
 
 
 
Partenaires

Hébergement Web