Hace relativamente poco tiempo Red Hat ha puesto a disposición la versión 7.0 GA de su sistema operativo Red Hat Enterprise Linux.
Uno de los cambios más notables en RHEL 7 (ya ahondaré en otro post) es la gestión de servicios que pasa de Upstart (basado en System V) a systemd. Dado que en la documentación oficial de JBoss EAP 6 sólo explica cómo configurar JBoss como servicio basado en SysV recojo en este post los pasos a seguir para configurarlo en systemd.
Otro de los cambios existentes es acerca del firewall, RHEL 7 viene con firewalld (sí, también con iptables, pero se dejará de usar), así que explicaré como configurar firewalld para poder acceder a JBoss.
Empezamos:
Lo primero siempre será configurar un usuario para el proceso de EAP
# useradd -r -u 400 -s /sbin/nologin -d /usr/share/jboss-as jboss
A la hora de instalar EAP podemos optar por los mecanismos de instalación basados en jar o basados en zip. Os aconsejo echar un vistazo al post Instalando JBoss EAP 6.2. Sería aconsejable instalarlo en la ruta /usr/share/jboss-as, que es la ruta donde instala el RPM. Dicha ruta deberá ser accesible para el usuario jboss, así que le damos los permisos correspondientes:
# chown -R jboss:jboss /usr/share/jboss-as
Perfecto. Ahora crearemos el directorio de configuración, donde pondremos el fichero de configuración que establece las variables que necesita el script de servicio. También el directorio de logs, y el directorio del fichero de PID
# mkdir /etc/jboss-as # cat > /etc/jboss-as/jboss-as.conf <<EOF > ## Usuario responsable del proceso > JBOSS_USER=jboss > ## Tiempo de espera para devolver el control de la SHELL, dependerá de la cantidad de aplicaciones/servicios que se desplieguen > STARTUP_WAIT=30 > ## Tiempo de espera para devolver el control de la SHELL, dependerá de la cantidad de aplicaciones/servicios que se apaguen > SHUTDOWN_WAIT=30 > ## Directorio y fichero de log > JBOSS_CONSOLE_LOG=/var/log/jboss-as/console.log > ## Directorio home de JBoss EAP > JBOSS_HOME=/usr/share/jboss-as/jboss-eap-6.X > EOF # mkdir /var/log/jboss-as # mkdir /var/run/jboss-as # chown -R jboss:jboss /var/log/jboss-as # chown -R jboss:jboss /var/run/jboss-as
Ya sólo falta crear el fichero de servicio:
# cat > /etc/systemd/system/jboss-as-standalone.service <<EOF > [Unit] > Description=Jboss Application Server > After=syslog.target network.target > > [Service] > Type=forking > ExecStart=/usr/share/jboss-as/bin/init.d/jboss-as-standalone.sh start > ExecStop=/usr/share/jboss-as/bin/init.d/jboss-as-standalone.sh stop > > [Install] > WantedBy=multi-user.target > EOF
Reiniciamos el demonio de systemd, arrancamos nuestro servicio de EAP, verificamos su estado y lo habilitamos:
# systemctl daemon-reload # systemctl start jboss-as-standalone.service # systemctl status jboss-as-standalone.service # systemctl enable jboss-as-standalone.service
Listo, ahora sólo queda adentrarnos en el fascinante mundo de FirewallD, pero como lo explicaré en otro post (espero que no tardando mucho), voy a centrarme en crear y habilitar un servicio básico para EAP. Empezaré por crear el servicio, activaré el servicio en runtime, activaré el servicio persistente y verificaré el servicio en ejecución y permanente (todo ello asumiendo que trabajamos en la zona public):
# cat > /etc/firewalld/services/jboss-as-standalone.xml > <?xml version="1.0" encoding="utf-8"?> > <service version="1.0"> > <short>jboss-as-standalone</short> > <port port="8080" protocol="tcp"/> > <port port="8443" protocol="tcp"/> > <port port="8009" protocol="tcp"/> > <port port="4447" protocol="tcp"/> > <port port="9990" protocol="tcp"/> > <port port="9999" protocol="tcp"/> > </service> > EOF # firewall-cmd --zone=public --add-service=jboss-as-standalone # firewall-cmd --permanent --zone=public --add-service=jboss-as-standalone # firewall-cmd --zone=public --list-services # firewall-cmd --permanent --zone=public --list-services
Hecho, nuestro EAP funcionando como servicio en RHEL 7.
Nos vemos…
Gracias por la información. Me fue de mucha ayuda.