SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
Despliegue de
 aplicaciones
      con
  Glassfish 3
   José Manuel Ferrete Benítez
Despliegue de aplicaciones con Glassfish                                                                     José Manuel Ferrete Benítez


Índice
Instalación.............................................................................................................................................3
Administració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.............................................................................7
Seguridad..............................................................................................................................................7
   HTTPS.............................................................................................................................................8
Logging...............................................................................................................................................10
Recomendaciones...............................................................................................................................11




                                                                           2
Despliegue de aplicaciones con Glassfish                                José Manuel Ferrete Benítez


Instalación
La 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 ejecutar
aplicaciones Java:
#aptitude update
#aptitude install sun-java6-jdk
Esto puede tardar un poco dependiendo de nuestro ancho de banda. Además nos presentará un
acuerdo 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 se
trata 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 un
entorno real, debería ser una contraseña que cumpliera con los requisitos de complejidad
suficientes.
              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ítez

Administración
En esta sección hablaremos sobre las formas de administrar nuestro glassfish, dependiendo de lo
que queramos hacer en cada momento.
Generalmente existen dos formas de administrar nuestro servidor de aplicaciones. Al igual que su
instalació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 nombrado
anteriormente.
Aunque existirán opciones que no encontraremos en el panel de administración y que no quiere
decir que nuestro glassfish no sea capaz de llevarlas a cabo. Para ello utilizaremos la administración
por 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 el
servidor.

Despligue de aplicaciones




Es bastante sencillo, simplemente le damos a Aplicaciones → Implementar.


                                                  5
Despliegue de aplicaciones con Glassfish                                José Manuel Ferrete Benítez

Nos 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 otras
cosas levantar y parar el servicio.
Comenzaremos por algo sencillo como puede ser listar las aplicaciones implantadas:
#/opt/glassfish3/bin/asadmin list-applications
Este 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 que
realmente necesitamos. Ahora listaremos sólo las aplicaciones de un host concreto.
#/opt/glassfish3/bin/asadmin --host localhost list-applications
En 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, el
usuario 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 de
aplicaciones 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 los
puertos 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.xml
Cada 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 domain2
Indicándole el puerto de admnistración, el de escucha para HTTP y el nombre del dominio. Si lo
hacemos así puede que queden puertos demasiados altos configurados en nuestro servidor, como
por 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ítez

Para solucionar esto vamos a utilizar un puerto base sobre el que se calcularán todos los demás a la
hora de crear el servidor:
#/opt/glassfish3/bin/asadmin create-domain --portbase 9000 domain2
Con 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é sirven
sólo hay que ejecutar la siguiente instrucción:
#/opt/glassfish3/bin/asadmin create-domain --help
Para eliminar un dominio basta con ejecutar el comando con el parámetro delete-domain.
#/opt/glassfish3/bin/asadmin delete-domain domain2

Despliegue de aplicaciones desde la terminal
Volveremos a utilizar asadmin para realizar también esta función.
Desplegar:
#/opt/glassfish3/bin/asadmin deploy --contextroot mi_aplicacion /ruta/mi_aplicacion.war
Eliminar:
#/opt/glassfish3/bin/asadmin undeploy mi_aplicacion

Seguridad
Llegando a este apartado nos centraremos en las conexiones ssl con nuestro servidor. Cuando
instalamos glassfish se nos crea automáticamente un certificado autofirmado y se nos abre el puerto
8181 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 la
que 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 un
fichero keystore, que podemos encontrar en el directorio /config de nuestro dominio.


                                                  7
Despliegue de aplicaciones con Glassfish                              José Manuel Ferrete Benítez

Glassfish utiliza la contraseña “changeit” por defecto para proteger todo keystore, debemos
cambiarla con el comando asadmin.
#/opt/glassfish3/bin/asadmin change-master-password --savemasterpassword=true
Podemos exportar, importar y eliminar certificados de este fichero utilizando el comando keytool de
la siguiente forma:
Exportar el certificado actual:
#keytool -keystore config/keystore.jks -exportcert -alias s1as -rfc -file certificadoServidor
Importar un certificado:
#keytool -keystore config/keystore.jks -import -v -alias s1as -file certificadoServidor
Eliminar un certificado:
#keytool -keystore config/keystore.jks -delete -v -alias s1as
A parte del fichero keystore.jks existe también otro llamado cacerts.jks, que almacena los
certificados de las entidades certificadoras de confianza para el servidor.

HTTPS
Procederemos ahora a configurar una conexión HTTPS para nuestro servidor utilizando un
certificado 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ítez


Logging
En cuanto al sistema de logs de Glassfish, hablaremos entre otras cosas, de donde los almacena y de
qué 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 de
analizar 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-levels
java.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ítez

Para editar el nivel de log de cada módulo lo podemos hacer directamente en el fichero de
configuración de log, logging-properties que encontramos al igual que domain.xml en el
subdirectorio 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=FINE
javax.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 la
siguiente línea:
.level= INFO
Eso 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 ha
podido 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ón
correspondiente a su versión desde la web oficial de Oracle.
               http://www.oracle.com/technetwork/indexes/documentation/index.html
Si en algún momento durante la práctica de comandos realizais cambios desastrosos en vuestro
dominio, eliminadlo y cread uno nuevo ejecutando el siguiente comando, el cual proporciona
Glassfish 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.por
t=8181:orb.ssl.port=3820:orb.mutualauth.port=3920 domain1
Eso es todo, espero que les haya servido de ayuda.




                                                 11

Weitere ähnliche Inhalte

Was ist angesagt?

Epo 450 cluster_install_guide_es-es
Epo 450 cluster_install_guide_es-esEpo 450 cluster_install_guide_es-es
Epo 450 cluster_install_guide_es-esPablo
 
Manual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en EclipseManual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en EclipseStalin Eduardo Tusa Vitar
 
Instalación básica vSphere 5.5
Instalación básica vSphere 5.5Instalación básica vSphere 5.5
Instalación básica vSphere 5.5RaGaZoMe
 
Debian Jessie (8.0) + GLPI 9.0 + FusionInventory
Debian Jessie (8.0) + GLPI 9.0 + FusionInventoryDebian Jessie (8.0) + GLPI 9.0 + FusionInventory
Debian Jessie (8.0) + GLPI 9.0 + FusionInventoryobytuario
 
(Manual de instalación de cloud computing)
(Manual de instalación de cloud computing)(Manual de instalación de cloud computing)
(Manual de instalación de cloud computing)Giovanny Echeverry
 
Instalacion Weblogic Server 12c Windows 10.
Instalacion Weblogic Server 12c Windows 10.Instalacion Weblogic Server 12c Windows 10.
Instalacion Weblogic Server 12c Windows 10.Moisés Elías Araya
 
Instalación de Maven 3.6.3 en Windows 10
Instalación de Maven 3.6.3 en Windows 10Instalación de Maven 3.6.3 en Windows 10
Instalación de Maven 3.6.3 en Windows 10Sonia Merayo González
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBossIker Canarias
 
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3 JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3 César Pajares
 
JBoss AS web services - Curso JBoss JB366 Día 4
JBoss AS web services - Curso JBoss JB366 Día 4 JBoss AS web services - Curso JBoss JB366 Día 4
JBoss AS web services - Curso JBoss JB366 Día 4 César Pajares
 
My Sql Comunity Edition
My Sql Comunity EditionMy Sql Comunity Edition
My Sql Comunity EditionMiguel Angel
 
Encender y Apagar VMs en Azure Automaticamente
Encender y Apagar VMs en Azure AutomaticamenteEncender y Apagar VMs en Azure Automaticamente
Encender y Apagar VMs en Azure AutomaticamenteRaGaZoMe
 
Manual para-instalar-oracle-database-11 g-r2-en-centos-6
Manual para-instalar-oracle-database-11 g-r2-en-centos-6Manual para-instalar-oracle-database-11 g-r2-en-centos-6
Manual para-instalar-oracle-database-11 g-r2-en-centos-6shac Rob
 
JBoss AS Seguridad - monitorizacións - Curso JBoss JB366 Día 4
JBoss AS Seguridad -  monitorizacións - Curso JBoss JB366 Día 4 JBoss AS Seguridad -  monitorizacións - Curso JBoss JB366 Día 4
JBoss AS Seguridad - monitorizacións - Curso JBoss JB366 Día 4 César Pajares
 

Was ist angesagt? (20)

Epo 450 cluster_install_guide_es-es
Epo 450 cluster_install_guide_es-esEpo 450 cluster_install_guide_es-es
Epo 450 cluster_install_guide_es-es
 
Manual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en EclipseManual Jboss Server,Creación de Proyecto en Eclipse
Manual Jboss Server,Creación de Proyecto en Eclipse
 
Elastix lab uece-book-esp
Elastix  lab uece-book-espElastix  lab uece-book-esp
Elastix lab uece-book-esp
 
Instalación básica vSphere 5.5
Instalación básica vSphere 5.5Instalación básica vSphere 5.5
Instalación básica vSphere 5.5
 
Debian Jessie (8.0) + GLPI 9.0 + FusionInventory
Debian Jessie (8.0) + GLPI 9.0 + FusionInventoryDebian Jessie (8.0) + GLPI 9.0 + FusionInventory
Debian Jessie (8.0) + GLPI 9.0 + FusionInventory
 
Administrando Jboss
Administrando JbossAdministrando Jboss
Administrando Jboss
 
Cómo instalar JDK 14 en Windows 10
Cómo instalar JDK 14 en Windows 10Cómo instalar JDK 14 en Windows 10
Cómo instalar JDK 14 en Windows 10
 
(Manual de instalación de cloud computing)
(Manual de instalación de cloud computing)(Manual de instalación de cloud computing)
(Manual de instalación de cloud computing)
 
Instalacion Weblogic Server 12c Windows 10.
Instalacion Weblogic Server 12c Windows 10.Instalacion Weblogic Server 12c Windows 10.
Instalacion Weblogic Server 12c Windows 10.
 
Instalación de Maven 3.6.3 en Windows 10
Instalación de Maven 3.6.3 en Windows 10Instalación de Maven 3.6.3 en Windows 10
Instalación de Maven 3.6.3 en Windows 10
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBoss
 
Instalación de Solaris
Instalación de SolarisInstalación de Solaris
Instalación de Solaris
 
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3 JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
 
Instalar Oracle 11g R2 CentOS 6.4
Instalar Oracle 11g R2 CentOS 6.4Instalar Oracle 11g R2 CentOS 6.4
Instalar Oracle 11g R2 CentOS 6.4
 
Elastix slide book-ece
Elastix  slide book-eceElastix  slide book-ece
Elastix slide book-ece
 
JBoss AS web services - Curso JBoss JB366 Día 4
JBoss AS web services - Curso JBoss JB366 Día 4 JBoss AS web services - Curso JBoss JB366 Día 4
JBoss AS web services - Curso JBoss JB366 Día 4
 
My Sql Comunity Edition
My Sql Comunity EditionMy Sql Comunity Edition
My Sql Comunity Edition
 
Encender y Apagar VMs en Azure Automaticamente
Encender y Apagar VMs en Azure AutomaticamenteEncender y Apagar VMs en Azure Automaticamente
Encender y Apagar VMs en Azure Automaticamente
 
Manual para-instalar-oracle-database-11 g-r2-en-centos-6
Manual para-instalar-oracle-database-11 g-r2-en-centos-6Manual para-instalar-oracle-database-11 g-r2-en-centos-6
Manual para-instalar-oracle-database-11 g-r2-en-centos-6
 
JBoss AS Seguridad - monitorizacións - Curso JBoss JB366 Día 4
JBoss AS Seguridad -  monitorizacións - Curso JBoss JB366 Día 4 JBoss AS Seguridad -  monitorizacións - Curso JBoss JB366 Día 4
JBoss AS Seguridad - monitorizacións - Curso JBoss JB366 Día 4
 

Andere mochten auch

Base de Datos. Microsoft Access 2007
Base de Datos. Microsoft Access 2007Base de Datos. Microsoft Access 2007
Base de Datos. Microsoft Access 2007Jomicast
 
Base de datos pres..
Base de datos pres..Base de datos pres..
Base de datos pres..chovialbi
 
Bases de datos.ppt presentacion
Bases de datos.ppt presentacionBases de datos.ppt presentacion
Bases de datos.ppt presentacionandreaydarlys
 
TALLER PRÁCTICO POWER POINT - BASES DE DATOS
TALLER PRÁCTICO POWER POINT - BASES DE DATOSTALLER PRÁCTICO POWER POINT - BASES DE DATOS
TALLER PRÁCTICO POWER POINT - BASES DE DATOSJohnfer Montoya
 
T1 Gestion De Datos
T1 Gestion De DatosT1 Gestion De Datos
T1 Gestion De Datosrmonago
 
Ficheros y carpetas
Ficheros y carpetasFicheros y carpetas
Ficheros y carpetasgeopaloma
 
Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)angeljlp08
 

Andere mochten auch (10)

Base de Datos. Microsoft Access 2007
Base de Datos. Microsoft Access 2007Base de Datos. Microsoft Access 2007
Base de Datos. Microsoft Access 2007
 
Base de datos pres..
Base de datos pres..Base de datos pres..
Base de datos pres..
 
Bases de datos.ppt presentacion
Bases de datos.ppt presentacionBases de datos.ppt presentacion
Bases de datos.ppt presentacion
 
Base de datos ppt
Base de datos pptBase de datos ppt
Base de datos ppt
 
ACCESS
ACCESSACCESS
ACCESS
 
TALLER PRÁCTICO POWER POINT - BASES DE DATOS
TALLER PRÁCTICO POWER POINT - BASES DE DATOSTALLER PRÁCTICO POWER POINT - BASES DE DATOS
TALLER PRÁCTICO POWER POINT - BASES DE DATOS
 
T1 Gestion De Datos
T1 Gestion De DatosT1 Gestion De Datos
T1 Gestion De Datos
 
Ficheros y directorios
Ficheros y directoriosFicheros y directorios
Ficheros y directorios
 
Ficheros y carpetas
Ficheros y carpetasFicheros y carpetas
Ficheros y carpetas
 
Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)
 

Ähnlich wie Glassfish (20)

Tema14
Tema14Tema14
Tema14
 
Tomcat
TomcatTomcat
Tomcat
 
Receta red social
Receta red socialReceta red social
Receta red social
 
Práctica: distribución de midlets mediante OTA con J2ME - parte I
Práctica: distribución de midlets mediante OTA con J2ME - parte IPráctica: distribución de midlets mediante OTA con J2ME - parte I
Práctica: distribución de midlets mediante OTA con J2ME - parte I
 
Practicas hackx crack_04
Practicas hackx crack_04Practicas hackx crack_04
Practicas hackx crack_04
 
Lot
LotLot
Lot
 
Lot
LotLot
Lot
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Framework
 
Manual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUIDManual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUID
 
Cherokee
CherokeeCherokee
Cherokee
 
Admin Manual
Admin ManualAdmin Manual
Admin Manual
 
Manual de instalaccion de wordpress
Manual de instalaccion de wordpressManual de instalaccion de wordpress
Manual de instalaccion de wordpress
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
 
A tutor
A tutorA tutor
A tutor
 
Manual oscommerce
Manual oscommerceManual oscommerce
Manual oscommerce
 
Joomla 3.0 avanzado
Joomla 3.0 avanzadoJoomla 3.0 avanzado
Joomla 3.0 avanzado
 
Proyecto final admistracion de redes
Proyecto final admistracion de redesProyecto final admistracion de redes
Proyecto final admistracion de redes
 
practica 1 apache
practica 1 apachepractica 1 apache
practica 1 apache
 
Vps local virtualbox
Vps local virtualboxVps local virtualbox
Vps local virtualbox
 
Observium
ObserviumObservium
Observium
 

Glassfish

  • 1. Despliegue de aplicaciones con Glassfish 3 José Manuel Ferrete Benítez
  • 2. Despliegue de aplicaciones con Glassfish José Manuel Ferrete Benítez Índice Instalación.............................................................................................................................................3 Administració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.............................................................................7 Seguridad..............................................................................................................................................7 HTTPS.............................................................................................................................................8 Logging...............................................................................................................................................10 Recomendaciones...............................................................................................................................11 2
  • 3. Despliegue de aplicaciones con Glassfish José Manuel Ferrete Benítez Instalación La 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 ejecutar aplicaciones Java: #aptitude update #aptitude install sun-java6-jdk Esto puede tardar un poco dependiendo de nuestro ancho de banda. Además nos presentará un acuerdo 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 se trata 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
  • 4. 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 un entorno real, debería ser una contraseña que cumpliera con los requisitos de complejidad suficientes. 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
  • 5. Despliegue de aplicaciones con Glassfish José Manuel Ferrete Benítez Administración En esta sección hablaremos sobre las formas de administrar nuestro glassfish, dependiendo de lo que queramos hacer en cada momento. Generalmente existen dos formas de administrar nuestro servidor de aplicaciones. Al igual que su instalació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 nombrado anteriormente. Aunque existirán opciones que no encontraremos en el panel de administración y que no quiere decir que nuestro glassfish no sea capaz de llevarlas a cabo. Para ello utilizaremos la administración por 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 el servidor. Despligue de aplicaciones Es bastante sencillo, simplemente le damos a Aplicaciones → Implementar. 5
  • 6. Despliegue de aplicaciones con Glassfish José Manuel Ferrete Benítez Nos 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 otras cosas levantar y parar el servicio. Comenzaremos por algo sencillo como puede ser listar las aplicaciones implantadas: #/opt/glassfish3/bin/asadmin list-applications Este 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 que realmente necesitamos. Ahora listaremos sólo las aplicaciones de un host concreto. #/opt/glassfish3/bin/asadmin --host localhost list-applications En 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, el usuario 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 de aplicaciones 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 los puertos 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.xml Cada 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 domain2 Indicándole el puerto de admnistración, el de escucha para HTTP y el nombre del dominio. Si lo hacemos así puede que queden puertos demasiados altos configurados en nuestro servidor, como por ejemplo el de HTTPS, el cual nos puede haber configurado en el 62000 por poner un ejemplo. 6
  • 7. Despliegue de aplicaciones con Glassfish José Manuel Ferrete Benítez Para solucionar esto vamos a utilizar un puerto base sobre el que se calcularán todos los demás a la hora de crear el servidor: #/opt/glassfish3/bin/asadmin create-domain --portbase 9000 domain2 Con 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é sirven sólo hay que ejecutar la siguiente instrucción: #/opt/glassfish3/bin/asadmin create-domain --help Para eliminar un dominio basta con ejecutar el comando con el parámetro delete-domain. #/opt/glassfish3/bin/asadmin delete-domain domain2 Despliegue de aplicaciones desde la terminal Volveremos a utilizar asadmin para realizar también esta función. Desplegar: #/opt/glassfish3/bin/asadmin deploy --contextroot mi_aplicacion /ruta/mi_aplicacion.war Eliminar: #/opt/glassfish3/bin/asadmin undeploy mi_aplicacion Seguridad Llegando a este apartado nos centraremos en las conexiones ssl con nuestro servidor. Cuando instalamos glassfish se nos crea automáticamente un certificado autofirmado y se nos abre el puerto 8181 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 la que 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 un fichero keystore, que podemos encontrar en el directorio /config de nuestro dominio. 7
  • 8. Despliegue de aplicaciones con Glassfish José Manuel Ferrete Benítez Glassfish utiliza la contraseña “changeit” por defecto para proteger todo keystore, debemos cambiarla con el comando asadmin. #/opt/glassfish3/bin/asadmin change-master-password --savemasterpassword=true Podemos exportar, importar y eliminar certificados de este fichero utilizando el comando keytool de la siguiente forma: Exportar el certificado actual: #keytool -keystore config/keystore.jks -exportcert -alias s1as -rfc -file certificadoServidor Importar un certificado: #keytool -keystore config/keystore.jks -import -v -alias s1as -file certificadoServidor Eliminar un certificado: #keytool -keystore config/keystore.jks -delete -v -alias s1as A parte del fichero keystore.jks existe también otro llamado cacerts.jks, que almacena los certificados de las entidades certificadoras de confianza para el servidor. HTTPS Procederemos ahora a configurar una conexión HTTPS para nuestro servidor utilizando un certificado 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
  • 9. 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
  • 10. Despliegue de aplicaciones con Glassfish José Manuel Ferrete Benítez Logging En cuanto al sistema de logs de Glassfish, hablaremos entre otras cosas, de donde los almacena y de qué 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 de analizar 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-levels java.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
  • 11. Despliegue de aplicaciones con Glassfish José Manuel Ferrete Benítez Para editar el nivel de log de cada módulo lo podemos hacer directamente en el fichero de configuración de log, logging-properties que encontramos al igual que domain.xml en el subdirectorio 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=FINE javax.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 la siguiente línea: .level= INFO Eso 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 ha podido 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ón correspondiente a su versión desde la web oficial de Oracle. http://www.oracle.com/technetwork/indexes/documentation/index.html Si en algún momento durante la práctica de comandos realizais cambios desastrosos en vuestro dominio, eliminadlo y cread uno nuevo ejecutando el siguiente comando, el cual proporciona Glassfish 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.por t=8181:orb.ssl.port=3820:orb.mutualauth.port=3920 domain1 Eso es todo, espero que les haya servido de ayuda. 11