Glassfish dans une Zone

En savourant un bagel dans cette belle ville de Montréal je me suis dit « tiens si j’écrivais un mini guide sur l’installation de Glassfish dans une Zone solaris ». Et paf c’est partie.

Je vais passer l’étape d’installation de Solaris 10 et de sa configuration que vous pouvez trouver sur mon blog et passer directement a la création de la zone puis l’installation de glassfish dedant.

Alors il faut commencer par creer l’espace de stockage pour la future zone.

# mkdir /var/zones
# mkdir /var/zones/z_glassfish

Un petit coup de chmod pour pacifier les droits :

# chmod –R 700 /var/zones/z_glassfish

Je ne vais pas créer de pool de ressource CPU mains directement créer la zone. Je reviendrais dans un autre billet à ce sujet.

# zonecfg -z z_glassfish
sunrise: No such zone configured
Use ‘create’ to begin configuring a new zone.
#zonecfg:sunrise> create # Création de la Zone
#zonecfg:sunrise> set zonepath=/var/zones/z_glassfish #Dossier de la zone
#zonecfg:sunrise> add net # Ajout d’une configuration réseau
#zonecfg:sunrise:net> set address=192.168.1.120 #Ip de la zone
#zonecfg:sunrise:net> set physical=pcn0 #Nom de l’interphase réseau physique (vmware pour l’exemple)
#zonecfg:sunrise:net> end # fin de la configuration réseaux
#zonecfg:sunrise> verify # Vérification de la configuration
#zonecfg:sunrise> commit # Validation de la configuration
#zonecfg:sunrise> exit # Sortie de la configuration de zone

On va vérifier la configuration :

# zonecfg -z z_glassfish info
zonepath: /var/zones/z_glassfish
autoboot: false
pool:
inherit-pkg-dir:
dir: /lib
inherit-pkg-dir:
dir: /platform
inherit-pkg-dir:
dir: /sbin
inherit-pkg-dir:
dir: /usr
net:
address: 192.168.1.120
physical: pcn0

Maintenant que la configuration de la zone est prête on va passer à la création à proprement parlé de la zone. Cette étape peut être relativement longue celon les performances de votre machine.

# zoneadm –z z_glassfish verify
# zoneadm -z z_glassfish install
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <2812> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1200> packages on the zone.
Initialized <1200> packages on zone.
Zone is initialized.
Installation of <1> packages was skipped.
Le fichier
contient un journal de l’installation de la zone.

Vous pouvez vérifier que la zone z_glassfish est bien installé :

# zoneadm list -cvi

Maintenant que la zone est créer, on va pouvoir la démarrer :

#zoneadm –z z_glassfish boot -s

Lors du premier boot il faut configurer la zone en fonction de vos préférence. Parfois Solaris a un peu du mal a reconnaitre le F2 dans ce utiliser la combinaison de touche MAJ + Esc + 2 pour validé les étapes.

On se loge sur la zone z_glassfish :

# zlogin –C z_glassfish

Pour ne pas encombré inutilement d’image le billet, je vous ai fait un récapitulatif des différentes options que vous devrez choisir (dans l’ordre d’affichage) :

Langue : Français
Environnement Localisé : France(UTF8)
Emulateur de terminal CDE (dtterm)
Hostname: glassfish
Configuration kerberos: No
Name Service : None
NFS4 configuration: Choix par defaut.
Time zone: Europe
Countries et regions : France
Mot de passe : password

A présent la console doit vous demander de vous identifier

glassfish console login : root
password : password

Voila vous êtes dans votre zone, vous pouvez faire exit pour en sortir et retour dans votre zone globale solaris.

Maintenant installons glassfish.

Toutes cette opération se déroule dans la zone que vous venez de créer, vérifier que vous êtes bien logger dedans et non dans votre zone globale.

# wget http://java.net/download/javaee5/v2ur2/promoted/SunOS_X86/glassfish-installer-v2ur2-b04-sunos_x86.jar

A présent, je vais executer le jar télécharger, qui va s’installer dans le répertoire courant.

# java -Xmx256m -jar glassfish-installer-v2ur2-b04-sunos_x86.jar

Je déplace tout ça dans un dossier appserver que j’ai creer dans le /var/ Vous pouvez faire comme vous voulez, cela ce configure dans le setup.xml

# mkdir /var/appserver
# cp -R glassfish/* /var/appserver/
# cd /var/appserver/

Je rajoute les droits d’exécution sur le dossier qui contiens les librairies qui vont me permettre de déployer mon serveur glassfish.

# chmod -R +x lib/ant/bin

Et enfin, je vais compiler le fichier setup.xml pour déployer le serveur.

# lib/ant/bin/ant -f setup.xml

Normlement, vous devrez avoir a la fin de l’exécution ceci :

BUILD SUCCESSFULL

A présent on va utiliser asadmin pour déployer le domain par defaut que l’on vient de creer. Attention l’asadmin fournis dans Solaris 10 provoque une erreur de type timeout

Timeout waiting for domain domain1 to go to starting state.
CLI156 Could not start the domain domain1.

Pour eviter cela, je vais utiliser le asadmin livré avec glassfish

# bin/asadmin start-domain domain1

Ce qui devrait vous retourner quelque comme ça :

Starting Domain domain1, please wait.
Log redirected to /var/appserver/domains/domain1/logs/server.log.
Redirecting output to /var/appserver/domains/domain1/logs/server.log
Domain domain1 is ready to receive client requests. Additional services are being started in background.
Domain [domain1] is running [Sun Java System Application Server 9.1_02 (build b04-fcs)] with its configuration and logs at: [/var/appserver/domains].
Admin Console is available at [http://localhost:4848].
Use the same port [4848] for « asadmin » commands.
User web applications are available at these URLs:
[http://localhost:8080 https://localhost:8181 ].
Following web-contexts are available:
[/web1 /__wstx-services ].
Standard JMX Clients (like JConsole) can connect to JMXServiceURL:
[service:jmx:rmi:///jndi/rmi://glassfish:8686/jmxrmi] for domain management purposes.
Domain listens on at least following ports for connections:
[8080 8181 4848 3700 3820 3920 8686 ].
Domain does not support application server clusters and other standalone instances.

Vous pouvez donc a présent accéder aux différent service de votre serveur glassfish comme indiqué dans le log juste au dessus.

Source qui m’ont aider a rédiger ce billet :
http://swik.net/GlassFish+solaris
https://glassfish.dev.java.net/
et bien sur les guru de chez guses : www.guses.org