Glassfish
Upcoming SlideShare
Loading in...5
×
 

Glassfish

on

  • 17,501 views

Introducción al despliegue y administración de Oracle Glassfish 3.

Introducción al despliegue y administración de Oracle Glassfish 3.

Statistics

Views

Total Views
17,501
Views on SlideShare
16,997
Embed Views
504

Actions

Likes
1
Downloads
413
Comments
2

10 Embeds 504

http://virtuatopedia.blogspot.com 254
http://virtuatopedia.blogspot.com.es 116
http://virtuatopedia.blogspot.mx 61
http://www.slideshare.net 49
http://virtuatopedia.blogspot.com.ar 17
https://si0.twimg.com 2
http://virtuatopedia.blogspot.de 2
http://virtuatopedia.blogspot.dk 1
http://virtuatopedia.blogspot.pt 1
http://virtuatopedia.blogspot.ch 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Quiero tener un dominio www.midominio.com que apunte directamente a mi aplicación glassfish a la que para acceder ahora tengo que teclear miIp:8080/miApp. ¿Cómo puedo hacerlo? Gracias!
    Are you sure you want to
    Your message goes here
    Processing…
  • Excelente aporte
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Glassfish Glassfish Document Transcript

    • Despliegue de aplicaciones con Glassfish 3 José Manuel Ferrete Benítez
    • Despliegue de aplicaciones con Glassfish José Manuel Ferrete BenítezÍndiceInstalación.............................................................................................................................................3Administración.....................................................................................................................................5 Administración de Glassfish mediante la interfaz web...................................................................5 Despligue de aplicaciones...........................................................................................................5 Administración de Glassfish desde la terminal................................................................................6 Ficheros de configuración...........................................................................................................6 Despliegue de aplicaciones desde la terminal.............................................................................7Seguridad..............................................................................................................................................7 HTTPS.............................................................................................................................................8Logging...............................................................................................................................................10Recomendaciones...............................................................................................................................11 2
    • Despliegue de aplicaciones con Glassfish José Manuel Ferrete BenítezInstalaciónLa instalación de Glassfish es muy sencilla tanto para entornos Linux como Windows.En este documento explicaremos como se realizaría la instalación en un sistema Debian Squeeze.Lo primero que tenemos que hacer será preparar nuestra máquina para que sea capaz de ejecutaraplicaciones Java:#aptitude update#aptitude install sun-java6-jdkEsto puede tardar un poco dependiendo de nuestro ancho de banda. Además nos presentará unacuerdo que debemos aceptar para instalarlo.Ahora procederemos a descargar Glassfish desde su web oficial: “http://glassfish.java.net/es/”.Descargamos la última versión del instalador para linux, “glassfish-3.1-unix-ml.sh”.Este instalador nos permite ejecutarlo entre otras, de dos formas, con interfaz gráfica o sin ella.Debemos tener en cuenta que no siempre vamos a tener a mano un entorno gráfico, y menos si setrata de un servidor.Por ello explicaremos como instalarlo sin hacer uso de la interfaz. Seguiremos los siguientes pasos: 1. Nos creamos un fichero de respuestas a las preguntas que nos realizaría la interfaz de instalación. #nano /tmp/borrame.txt Con el siguiente contenido: RegistrationOptions.regoptions.CREATE_NEWACCT=CREATE_NEWACCT glassfish.Administration.HTTP_PORT=8080 updatetool.Configuration.PROXY_PORT= glassfish.Administration.ADMIN_PASSWORD= JDKSelection.directory.JDK_FROM_LIST_CHOICE=true RegistrationOptions.regoptions.SKIP_REGISTRATION=SKIP_REGISTRATION updatetool.Configuration.PROXY_HOST= SOAccountCreation.accountinfo.COUNTRY= InstallHome.directory.INSTALL_HOME=/opt/glassfish3 RegistrationOptions.regoptions.USE_EXISTINGACCT=USE_EXISTINGACCT SOAccountCreation.accountinfo.FIRSTNAME= updatetool.Configuration.ALLOW_UPDATE_CHECK=true glassfish.Administration.ADMIN_USER=admin JDKSelection.directory.JDK_LIST=/usr/lib/jvm/java-6-sun/ SOAccountCreation.accountinfo.PASSWORD= SOAccountCreation.accountinfo.COMPANYNAME= JDKSelection.directory.HIDDEN_JDK= SOAccountCreation.accountinfo.COUNTRY_DROP_DOWN= SOAccountCreation.accountinfo.REENTERPASSWORD= License.license.ACCEPT_LICENSE=0 RegistrationOptions.regoptions.USERNAME= updatetool.Configuration.BOOTSTRAP_UPDATETOOL=true SOAccountCreation.accountinfo.LASTNAME= glassfish.Administration.ADMIN_PORT=4848 RegistrationOptions.regoptions.USERPASSWORD= JDKSelection.directory.JDK_TYPED_IN_CHOICE=false SOAccountCreation.accountinfo.EMAIL= JDKSelection.directory.JDK_TYPE_IN= RegistrationOptions.regoptions.DUMMY_PROP= 3
    • Despliegue de aplicaciones con Glassfish José Manuel Ferrete Benítez Explicando algunas de las líneas podríamos decir que: glassfish.Administration.HTTP_PORT=8080 Es el puerto por defecto donde escucharía las peticiones nuestro glassfish. InstallHome.directory.INSTALL_HOME=/opt/glassfish3 Se trata del directorio donde se instalará glassfish. glassfish.Administration.ADMIN_USER=admin Usuario con el que accederemos al panel de administración. glassfish.Administration.ADMIN_PASSWORD= Contraseña del usuario anterior, en este momento se ha dejado en blanco, pero en unentorno real, debería ser una contraseña que cumpliera con los requisitos de complejidadsuficientes. JDKSelection.directory.JDK_LIST=/usr/lib/jvm/java-6-sun/ Directorio donde se encuentra el jre instalado anteriormente. glassfish.Administration.ADMIN_PORT=4848 Puerto por defecto que usará glassfish para servirnos el panel de administración. 2. Procedemos a instalar glassfish desde la terminal con el siguiente comando: #sh /opt/glassfish-3.1-unix-ml.sh -a /tmp/borrame.txt -s Dejamos que se instale... 3. Lanzamos nuestro servidor: #/opt/glassfish3/bin/asadmin start-domain Más adelante, en el apartado administración explicaremos con más detalle este comando. 4. Si accedemos al panel de administración (http://localhost:4848/ por defecto) veremos la siguiente pantalla: 4
    • Despliegue de aplicaciones con Glassfish José Manuel Ferrete BenítezAdministraciónEn esta sección hablaremos sobre las formas de administrar nuestro glassfish, dependiendo de loque queramos hacer en cada momento.Generalmente existen dos formas de administrar nuestro servidor de aplicaciones. Al igual que suinstalación, lo podemos administrar con o sin interfaz gráfico.Si lo vamos a hacer mediante una interfaz utilizaremos el panel de administración web nombradoanteriormente.Aunque existirán opciones que no encontraremos en el panel de administración y que no quieredecir que nuestro glassfish no sea capaz de llevarlas a cabo. Para ello utilizaremos la administraciónpor línea de comandos. Algunas funciones específicas del uso de la terminal pueden ser: • Edición de ficheros a mano. • Uso de comandos de administración (Ej: asadmin...). • Configuraciónes avanzadas (Ej: combinar apache con glassfish...).Administración de Glassfish mediante la interfaz web.Algunas de las tareas que suele realizar un administrador es el despliegue de las aplicaciones en elservidor.Despligue de aplicacionesEs bastante sencillo, simplemente le damos a Aplicaciones → Implementar. 5
    • Despliegue de aplicaciones con Glassfish José Manuel Ferrete BenítezNos pedirá la ruta del fichero que contendrá la aplicación, en este caso es un contenedor war.Seguidamente hacemos clic en Aceptar.Nos aparecerá el siguiente indicador:Como resultado obtendremos la aplicación correctamente implantada.Para acceder a ella: http://localhost:8080/mi_aplicacion/.Administración de Glassfish desde la terminal.Es hora de conocer con profundidad el comando “asadmin”. Este comando nos permite entre otrascosas levantar y parar el servicio.Comenzaremos por algo sencillo como puede ser listar las aplicaciones implantadas:#/opt/glassfish3/bin/asadmin list-applicationsEste comando nos debe devolver un listado de las aplicaciones indicando de que tipo son.Al comando asadmin se le puede pasar atributos que nos ayuden a conseguir la información querealmente necesitamos. Ahora listaremos sólo las aplicaciones de un host concreto.#/opt/glassfish3/bin/asadmin --host localhost list-applicationsEn este caso nos devolverá las mismas aplicaciones, pero también nos puede ayudar a saber quéaplicaciones tenemos implantadas en hosts remotos.Junto con el host, podemos indicarle además atributos como el tipo de aplicación, el puerto, elusuario con el que autenticarse (por defecto: admin) y mas cosas que por ahora no necesitaremos.Un comando básico es también el de levantar, reiniciar y parar el servidor:#/opt/glassfish3/bin/asadmin <start-domain | restart-domain | stop-domain>Ficheros de configuración.Una vez que se habla de administración de glassfish debemos tener claro que dicho servidor deaplicaciones trabaja con dominios, cada dominio no es más que un servicio.Al instalarse glassfish, se crea por defecto el dominio “domain1” escuchando las peticiones en lospuertos 8080, 8181 y 4848.Bien, esto y muchas mas cosas se pueden modificar en el fichero de configuración del dominio:/opt/glassfish3/glassfish/domains/domain1/config/domain.xmlCada vez que modifiquemos este fichero deberemos utilizar el comando asadmin para verificarlo.Para crear un nuevo dominio simplemente ejecutamos el siguiente comando:#/opt/glassfish3/bin/asadmin create-domain --adminport 4949 --instanceport 9090 domain2Indicándole el puerto de admnistración, el de escucha para HTTP y el nombre del dominio. Si lohacemos así puede que queden puertos demasiados altos configurados en nuestro servidor, comopor ejemplo el de HTTPS, el cual nos puede haber configurado en el 62000 por poner un ejemplo. 6
    • Despliegue de aplicaciones con Glassfish José Manuel Ferrete BenítezPara solucionar esto vamos a utilizar un puerto base sobre el que se calcularán todos los demás a lahora de crear el servidor:#/opt/glassfish3/bin/asadmin create-domain --portbase 9000 domain2Con este comando nos creara un servidor con las siguientes conexiones: Utilizando el puerto 9048 para Admin. Utilizando el puerto 9080 para HTTP Instance. Utilizando el puerto 9076 para JMS. Utilizando el puerto 9037 para IIOP. Utilizando el puerto 9081 para HTTP_SSL. Utilizando el puerto 9038 para IIOP_SSL. Utilizando el puerto 9039 para IIOP_MUTUALAUTH. Utilizando el puerto 9086 para JMX_ADMIN. Utilizando el puerto 9066 para OSGI_SHELL. Utilizando el puerto 9009 para JAVA_DEBUGGER.Mucho más fácil de interpretar y de recordar verdad.El parámetro create-domain admite muchas más opciones, para acceder a ellas y ver para qué sirvensólo hay que ejecutar la siguiente instrucción:#/opt/glassfish3/bin/asadmin create-domain --helpPara eliminar un dominio basta con ejecutar el comando con el parámetro delete-domain.#/opt/glassfish3/bin/asadmin delete-domain domain2Despliegue de aplicaciones desde la terminalVolveremos a utilizar asadmin para realizar también esta función.Desplegar:#/opt/glassfish3/bin/asadmin deploy --contextroot mi_aplicacion /ruta/mi_aplicacion.warEliminar:#/opt/glassfish3/bin/asadmin undeploy mi_aplicacionSeguridadLlegando a este apartado nos centraremos en las conexiones ssl con nuestro servidor. Cuandoinstalamos glassfish se nos crea automáticamente un certificado autofirmado y se nos abre el puerto8181 por defecto para las conexiones seguras, habilitando HTTPS por defecto desde su instalación.Es posible utilizar otros certificados, como por ejemplo los que nos proporcione la empresa con laque trabajamos o la empresa a la que ofrecemos el servicio.Una diferencia con respecto a otros servicios es que los certificados deben estar almacenados en unfichero keystore, que podemos encontrar en el directorio /config de nuestro dominio. 7
    • Despliegue de aplicaciones con Glassfish José Manuel Ferrete BenítezGlassfish utiliza la contraseña “changeit” por defecto para proteger todo keystore, debemoscambiarla con el comando asadmin.#/opt/glassfish3/bin/asadmin change-master-password --savemasterpassword=truePodemos exportar, importar y eliminar certificados de este fichero utilizando el comando keytool dela siguiente forma:Exportar el certificado actual:#keytool -keystore config/keystore.jks -exportcert -alias s1as -rfc -file certificadoServidorImportar un certificado:#keytool -keystore config/keystore.jks -import -v -alias s1as -file certificadoServidorEliminar un certificado:#keytool -keystore config/keystore.jks -delete -v -alias s1asA parte del fichero keystore.jks existe también otro llamado cacerts.jks, que almacena loscertificados de las entidades certificadoras de confianza para el servidor.HTTPSProcederemos ahora a configurar una conexión HTTPS para nuestro servidor utilizando uncertificado autofirmado. 1. Primero necesitaremos crear nuestra clave privada e introducirla en el keystore. #keytool -genkey -alias certkey -keysize 1024 -keyalg RSA -keystore config/keystore.jks Este comando nos preguntará ahora una serie de datos necesarios para la creación de los certificados. NOTA: Cuando se nos pida el CN, deberemos indicarle un nombre único y común que identifique a nuestra máquina. 2. Ahora necesitaremos configurar nuestro servidor para que utilice dicho certificado. De paso habilitaremos SSL 3 que por defecto está deshabilitado. Para ello accederemos a la Interfaz web → Server Config → Escuchas de Red → Http- listener-2 (Por defecto) → SSL, y lo configuramos como en la siguiente captura. 8
    • Despliegue de aplicaciones con Glassfish José Manuel Ferrete Benítez Hacemos clic en Aceptar, reiniciamos el servidor y el resultado es el siguiente: Si vemos los detalles de nuestro certificado: Por ahora eso es todo con respecto a la administración. 9
    • Despliegue de aplicaciones con Glassfish José Manuel Ferrete BenítezLoggingEn cuanto al sistema de logs de Glassfish, hablaremos entre otras cosas, de donde los almacena y dequé formato tienen por defecto.En principio Glassfish cuenta con un fichero de log por cada uno de los dominios de que disponga.Este fichero se encuentra en el directorio “logs” de cada dominio y se denomina “server.log”.Almacena información con el siguiente formato: [#|yyyy-mm-ddThh:mm:ss.SSS-Z|Log Level|ProductName-Version|LoggerName|Key Value Pairs|Message|#]Explicaremos un poco esta estructura: • Los símbolos [# y #] son los delimitadores de cada registro. • El símbolo | es el que se encarga de separar cada dato. • La primera estructura yyyy-mm-ddThh:mm:ss.SSS-Z claramente es la fecha. • El campo Log Level indica el nivel de importancia del suceso ocurrido, este nivel puede ser SEVERE, WARNING, INFO, CONFIG, FINE, FINER y FINEST. Por defecto es INFO. • ProductName-Version Nos indica la versión del servidor que ha generado el registro. Ej: glassfish. • LoggerName Identifica al módulo que ha almacenado el registro. Ej: javax.enterprise.system.core. • El campo Key Value Pairs identifica al subproceso que ha generado el registro. Ej: _ThreadID=14. • Y por último el campo Message es el que nos proporciona la información del suceso.El campo Log Level quizás sea uno de los más importantes a la hora de clasificar las entradas y deanalizar los ficheros de log. Podemos ver el Log Level de cada módulo con el subcomando list-log-levels de asadmin. Ejemplo:#/opt/glassfish3/bin/asadmin list-log-levelsjava.util.logging.ConsoleHandler <FINEST>javax.enterprise.resource.corba <INFO>javax.enterprise.resource.javamail<INFO>javax.enterprise.resource.jdo <INFO>javax.enterprise.resource.jms <INFO>javax.enterprise.resource.jta <INFO>….org.glassfish.admingui <INFO>org.jvnet.hk2.osgiadapter <INFO>El comando list-log-levels se ha ejecutado correctamente. 10
    • Despliegue de aplicaciones con Glassfish José Manuel Ferrete BenítezPara editar el nivel de log de cada módulo lo podemos hacer directamente en el fichero deconfiguración de log, logging-properties que encontramos al igual que domain.xml en elsubdirectorio config de cada dominio.También podemos hacerlo mediante asadmin con el siguiente subcomando:#/opt/glassfish3/bin/asadmin set-log-levels javax.enterprise.system.container.web.level=FINEjavax.enterprise.system.container.web.level package set with log level FINE.These logging levels are set for server.El comando set-log-levels se ha ejecutado correctamente.Para cambiar el nivel de log global, se haría editando el fichero de configuración y buscando lasiguiente línea:.level= INFOEso es todo con respecto a la introducción al despliegue de aplicaciones con glassfish 3.Recomendaciones.Recordamos que durante la realización del documento se ha trabajado con Glassfish 3.1, el cual hapodido sufrir algunas modificaciones en los comandos a utilizar con respecto a sus predecesores.Recomiendo a todo el mundo que tenga dudas al respecto que se lea la documentacióncorrespondiente a su versión desde la web oficial de Oracle. http://www.oracle.com/technetwork/indexes/documentation/index.htmlSi en algún momento durante la práctica de comandos realizais cambios desastrosos en vuestrodominio, eliminadlo y cread uno nuevo ejecutando el siguiente comando, el cual proporcionaGlassfish durante su instalación y es el ejecutado para crear el dominio por defecto:#/opt/glassfish3/bin/asadmin create-domain --savelogin --checkports=false --adminport 4848--instanceport 8080--domainproperties=jms.port=7676:domain.jmxPort=8686:orb.listener.port=3700:http.ssl.port=8181:orb.ssl.port=3820:orb.mutualauth.port=3920 domain1Eso es todo, espero que les haya servido de ayuda. 11