Hace algún tiempo había escuchado hablar a a algunos colegas sobre JBOSS la verdad nunca lo había utilizado ni sabía para que se utilizaba, esta conversación es la que hoy me trae a este nuevos post.
Empecemos por dar une breve descripción de lo que es nuestro querido JBOSS. Este es un servicio o servidor de aplicaciones JAVA EE de código abierto por lo que lo hace muy versátil y puede ser utilizado, descargado y distribuido gracias a su licencia LGPL que permite usarse libremente sin ningún costo en cualquier aplicación.
Características:
- Licencia sin costo alguno
- Servicios de middleware para cualquier objeto de JAVA.
Bueno no siendo más manos a la obra
- Validar versión instalada de JAVA en nuestro servidor. Si esta instalada debe devolver un mensaje como este.
#java -version
[root@localhost java]# java -version
java version «1.7.0_25»
2. Descargamos la ultima version de JBOSS con el siguiente comando a nivel de /usr/share/
[root@localhost bin]#wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip
3. Se descomprime el JBOSS.
[root@localhost prueba]# unzip -q jboss-as-7.1.1.Final.zip
Nos debe que dar asi al listar ls
[root@localhost prueba]# ls
jboss-as-7.1.1.Final jboss-as-7.1.1.Final.zip
Eliminanos el archivo .ZIP
[root@localhost prueba]# rm -rf jboss-as-7.1.1.Final
Verificamos la ruta
[root@localhost jboss-6.0.0.final]# pwd
/usr/share/jboss-as-7.1.1.Final
4. Ahora crearemos el usuario y grupo para JBOSS
[root@localhost jboss-6.0.0.final]# groupadd jboss
[root@localhost jboss-6.0.0.final]# useradd -s /bin/bash -g jboss jboss
5. Cambiamos la propiedad del directorio para el usuario JBOSS
[root@localhost jboss-6.0.0.final]# chown -Rf jboss.jboss /usr/share/jboss-as-7.1.1.Final/
6. Configuramos los paths tanto de JAVA_HOME como de JBOSS_HOME para el usuario root y jboss.
Quedando de esta forma.
[root@localhost jboss-6.0.0.final]# nano /root/.bash_profile
JAVA_HOME=/usr/java/jdk1.7.0.25
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
JBOSS_HOME=/usr/share/jboss-as-7.1.1.Fina
export JBOSS_HOME
7. Vamos a la ruta donde esta el jboss y nos ubicamos en bin
[root@localhost bin]# pwd
/usr/share/jboss-6.0.0.final/bin
8. Ejecutamos el comando de inicio del JBOSS (normalmente esta pantalla se quedara congelada)
[root@localhost bin]# ./standalone.sh
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /usr/share/jboss-6.0.0.final
JAVA: java
JAVA_OPTS: -server -XX:+TieredCompilation -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.server.default.config=standalone.xml
=========================================================================
22:20:56,287 INFO [org.jboss.modules] JBoss Modules version 1.1.1.GA
22:20:56,770 INFO [org.jboss.msc] JBoss MSC version 1.0.2.GA
22:20:56,883 INFO [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final «Brontes» starting
22:21:03,428 INFO [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http)
22:21:03,577 INFO [org.xnio] XNIO Version 3.0.3.GA
22:21:03,705 INFO [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA
22:21:03,718 INFO [org.jboss.as.configadmin] JBAS016200: Activating ConfigAdmin Subsystem
22:21:03,746 INFO [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers
22:21:03,811 INFO [org.jboss.as.naming] (ServerService Thread Pool — 38) JBAS011800: Activating Naming Subsystem
22:21:03,831 INFO [org.jboss.as.webservices] (ServerService Thread Pool — 48) JBAS015537: Activating WebServices Extension
22:21:03,800 INFO [org.jboss.as.security] (ServerService Thread Pool — 44) JBAS013101: Activating Security Subsystem
22:21:03,964 INFO [org.jboss.remoting] (MSC service thread 1-2) JBoss Remoting version 3.2.3.GA
22:21:04,247 INFO [org.jboss.as.osgi] (ServerService Thread Pool — 39) JBAS011940: Activating OSGi Subsystem
22:21:04,278 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool — 31) JBAS010280: Activating Infinispan subsystem.
22:21:05,284 INFO [org.jboss.as.security] (MSC service thread 1-1) JBAS013100: Current PicketBox version=4.0.7.Final
22:21:05,303 INFO [org.jboss.as.connector] (MSC service thread 1-2) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.9.Final)
22:21:06,158 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool — 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
22:21:06,197 INFO [org.jboss.as.naming] (MSC service thread 1-2) JBAS011802: Starting Naming Service
22:21:08,353 INFO [org.jboss.as.mail.extension] (MSC service thread 1-1) JBAS015400: Bound mail session [java:jboss/mail/Default]
22:21:09,049 INFO [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-2) JBoss Web Services – Stack CXF Server 4.0.2.GA
22:21:09,133 INFO [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-1) Starting Coyote HTTP/1.1 on http–127.0.0.1-8080
22:21:09,994 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
22:21:10,475 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-2) JBAS015012: Started FileSystemDeploymentService for directory /usr/share/jboss-6.0.0.final/standalone/deployments
22:21:10,513 INFO [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on /127.0.0.1:4447
22:21:10,515 INFO [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on /127.0.0.1:9999
22:21:11,005 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
22:21:11,006 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.1.1.Final «Brontes» started in 15142ms – Started 133 of 208 services (74 services are passive or on-demand)
9. Validamos que este corriendo JAVA, la consola de administracion de nuestro JBOSS corre por el puerto 9990 y el servicio de tomcat correo por el puerto 8080.
[root@localhost jdk-7u25-linux-i586.bin]# netstat -apnl | grep java
tcp 0 0 127.0.0.1:9990 0.0.0.0:* LISTEN 11986/java
tcp 0 0 127.0.0.1:9999 0.0.0.0:* LISTEN 11986/java
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 11986/java
tcp 0 0 127.0.0.1:4447 0.0.0.0:* LISTEN 11986/java
unix 2 [ ] STREAM CONNECTED 128782 11986/java
10. Creamos el usuario para que pueda acceder a la consola de administracion de nuestro JBOSS
[root@localhost bin]# ./add-user.sh
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a):
Enter the details of the new user to add.
Realm (ManagementRealm) :
Username : prueba
Password :
Re-enter Password :
* Error *
JBAS015238: Username must not match the password. (nos presenta este error por que el nombre y el password no pueden ser el mismo)
Comienza automaticamente la creacion del nueva poassword para el usuario.
Enter the details of the new user to add.
Realm (ManagementRealm) :
Username (prueba) :
Password :
Re-enter Password :
About to add user ‘prueba’ for realm ‘ManagementRealm’
Is this correct yes/no? y
Added user ‘prueba’ to file ‘/usr/share/jboss-6.0.0.final/standalone/configuration/mgmt-users.properties’
Added user ‘prueba’ to file ‘/usr/share/jboss-6.0.0.final/domain/configuration/mgmt-users.properties
Dice que fue creado con exito el user y password.
Validamos es mejor ser desconfiados 😉
[root@localhost bin]# cat /usr/share/jboss-6.0.0.final/domain/configuration/mgmt-users.properties
#
# Properties declaration of users for the realm ‘ManagementRealm’ which is the default realm
# for new AS 7.1 installations. Further authentication mechanism can be configured
# as part of the <management /> in host.xml.
#
# Users can be added to this properties file at any time, updates after the server has started
# will be automatically detected.
#
# By default the properties realm expects the entries to be in the format: –
# username=HEX( MD5( username ‘:’ realm ‘:’ password))
#
# A utility script is provided which can be executed from the bin folder to add the users: –
# – Linux
# bin/add-user.sh
#
# – Windows
# bin\add-user.bat
#
# On start-up the server will also automatically add a user $local – this user is specifically
# for local tools running against this AS installation.
#
# The following illustrates how an admin user could be defined, this
# is for illustration only an does not correspond to a usable password.
#
#admin=2a0923285184943425d1f53ddd58ec7a
prueba=bebba8fb4a1a801b5210212e9993f565
10. Habilito acceso a la consola de administracion de JBOSS desde cualquier Rango o IP en el siguiente archivo, buscamos la siguiente linea y cambiamos el 127.0.0.1 por 0.0.0.0
[root@localhost java]# nano /usr/share/jboss-6.0.0.final/standalone/configuration/standalone.xml
<interfaces>
<interface name=»management»>
<inet-address value=»${jboss.bind.address.management:0.0.0.0}»/>
</interface>
11. ingresaremos a la consola de alministracion por medio de el navegador http://localhost:9990
Validamos ingreso por el puerto 8080 de tomcat
12. Agregue estas dos lineas a las IPTABLES
[root@localhost bin] service iptables status
10 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8080
11 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:9990
13. Validamos ingreso a la consola de administracion.
Hay muchas mas opciones de configuraciones y optimizacion del servicio. Esta es una configuracion basica espero
les sea de utilidad.
Enlaces de referencia.
http://www.jboss.org/
http://es.wikipedia.org/wiki/JBoss
http://www.davidghedini.com/pg/entry/install_jboss_7_on_centos