Capítulo 2. Administración de JBoss EAP

2.1. Descargar e instalar JBoss EAP

En esta guía se proporcionan instrucciones básicas para descargar e instalar JBoss EAP mediante la instalación ZIP, que es independiente de la plataforma.

Para conocer detalles adicionales, consulte la Guía de instalación, que incluye instrucciones para instalar JBoss EAP mediante el instalador gráfico o los métodos de instalación de paquetes RPM.

2.1.1. Prerrequisitos de instalación

Verificar que los siguientes prerrequisitos se hayan cumplido antes de instalar JBoss EAP:

Prerrequisitos comunes

Prerrequisitos de instalación ZIP

  • El usuario que ejecutará JBoss EAP debe tener acceso de lectura y escritura para el directorio de instalación.
  • Debe instalarse el kit de desarrollo de Java deseado.
  • Para Hewlett-Packard HP-UX, se debe instalar una herramienta unzip.
  • Para Windows Server, se deben establecer las variables de entorno JAVA_HOME y PATH.

2.1.2. Descargar JBoss EAP

El archivo ZIP de JBoss EAP está disponible en el Portal del cliente de Red Hat. La instalación del archivo ZIP es independiente de la plataforma.

  1. Ingrese al Portal del cliente de Red Hat.
  2. Haga clic en Downloads.
  3. Haga clic en Red Hat JBoss Enterprise Application Platform en la lista Descargas de productos
  4. En el menú desplegable Versión, seleccione 7.1.
  5. Busque Red Hat JBoss Enterprise Application Platform 7.1.0 en la lista y haga clic en el enlace Descargar.

2.1.3. Instale JBoss EAP

Una vez haya sido descargado el archivo de instalación EAP ZIP, puede ser instalado al extraer el contenido del paquete.

  1. Si es necesario, desplace el archivo ZIP al servidor y el sitio donde JBoss EAP debe ser instalado.

    Nota

    El usuario que ejecutará JBoss EAP debe tener acceso de lectura y escritura para este directorio.

  2. Extraer el archivador.

    $ unzip jboss-eap-7.1.0.zip
    Nota

    Para Windows Server, haga clic derecho en el archivo ZIP y seleccione Extract All.

El directorio creado al extraer el archivo ZIP es el directorio del nivel superior para la instalación de JBoss EAP. Este directorio se conoce como EAP_HOME.

2.2. Iniciar y detener JBoss EAP

2.2.1. Iniciar JBoss EAP

JBoss EAP es compatible con Red Hat Enterprise Linux, Windows Server, Oracle Solaris y Hewlett-Packard HP-UX, y se ejecuta en un modo operativo de servidor autónomo o dominio administrado. El comando específico para iniciar JBoss EAP depende de la plataforma subyacente y del modo operativo deseado.

En un principio, los servidores se inician en modo suspendido y no aceptan solicitudes hasta que todos los servicios requeridos se hayan iniciado, en cuyo momento, los servidores se colocarán en estado de ejecución normal y podrán comenzar a aceptar solicitudes.

Iniciar JBoss EAP como un servidor autónomo
$ EAP_HOME/bin/standalone.sh
Nota

Para Windows Server, use el script EAP_HOME\bin\standalone.bat.

Este script de arranque usa el archivo EAP_HOME/bin/standalone.conf (o standalone.conf.bat para Windows Server) para establecer algunas preferencias predeterminadas, como opciones JVM. Puede personalizar los parámetros en este archivo.

JBoss EAP usa el archivo de configuración standalone.xml de forma predeterminada, pero puede iniciarse mediante uno diferente. Para obtener más información sobre los archivos de configuración autónomos y la forma de usarlos, consulte la sección Configuración de servidor autónoma.

Para obtener un listado de todos los argumentos de scripts de arranque y sus propósitos, use el argumento --help o consulte la sección de argumentos o vea la sección Argumentos de tiempo de ejecución de servidor.

Inicie JBoss EAP en un dominio administrado

El controlador de dominio se debe iniciar antes que los servidores en los grupos de servidores del dominio. Utilice este script para iniciar primero el controlador de dominio y, luego, para cada controlador de host asociado.

$ EAP_HOME/bin/domain.sh
Nota

Para Windows Server, use el script EAP_HOME\bin\domain.bat.

Este script de arranque usa el archivo EAP_HOME/bin/domain.conf (o domain.conf.bat para Windows Server) para establecer algunas preferencias predeterminadas, como opciones JVM. Puede personalizar los parámetros en este archivo.

JBoss EAP usa el archivo de configuración standalone.xml de forma predeterminada, pero puede iniciarse mediante uno diferente. Para obtener más información sobre los archivos de configuración autónomos y la forma de usarlos, consulte la sección Archivos de configuración de dominio administrado.

Al configurar un dominio administrado, se deberán pasar argumentos adicionales en el script de arranque. Para obtener un listado de todos los argumentos de scripts de arranque disponibles y sus propósitos, use el argumento --help o consulte la sección Argumentos de tiempo de ejecución del servidor.

2.2.2. Parada de JBoss EAP

La forma de parar a JBoss EAP depende de la forma como se ha iniciado.

Pare una instancia interactiva de JBoss EAP

Presione Ctrl+C en el terminal donde se inició JBoss EAP.

Pare una instancia de segundo plano de JBoss EAP

Use la CLI administrativa para conectarse a la instancia que está en ejecución y apague el servidor.

  1. Lance la CLI administrativa.

    $ EAP_HOME/bin/jboss-cli.sh --connect
  2. Ejecute el comando shutdown.

    shutdown
Nota

Cuando se ejecuta en un dominio administrado, debe especificar el nombre de host para el apagado mediante el argumento --host con el comando shutdown.

2.3. JBoss EAP Management

JBoss EAP usa una configuración simplificada con un archivo de configuración por servidor autónomo o dominio administrado. La configuración predeterminada para un servidor autónomo se almacena en el archivo EAP_HOME/standalone/configuration/standalone.xml y la configuración predeterminada para un dominio administrado se almacena en el archivo EAP_HOME/domain/configuration/domain.xml. Además, la configuración predeterminada para un controlador de host se almacena en el archivo EAP_HOME/domain/configuration/host.xml.

JBoss EAP se puede configurar mediante la CLI de administración de la línea de comando, la consola de administración basada en la Web, Java API o HTTP API. Los cambios realizados a través de estas interfaces de administración persisten automáticamente y la API de administración sobrescribe los archivos de configuración XML. Los métodos preferidos son la CLI de administración y la consola de administración. No se recomienda modificar de forma manual los archivos de configuración XML.

2.3.1. Usuarios administrativos

La configuración predeterminada de JBoss EAP proporciona autenticación local, para que un usuario pueda tener acceso a la CLI de administración en el host local sin requerir autenticación.

Sin embargo, debe agregar un usuario de administración si desea acceder a la CLI de administración de manera remota o usar la consola de administración, que se considera como acceso remoto, incluso si el tráfico se origina en el host local. Si intenta acceder a la consola de administración antes de añadir un usuario de administración, recibirá un mensaje de error.

Si JBoss EAP está instalado usando el instalador gráfico, se crea un usuario de administración durante el proceso de instalación.

Esta guía abarca la administración de usuario simple para JBoss EAP mediante el script add-user, que es una herramienta que permite añadir nuevos usuarios a los archivos de propiedades para la autenticación externa.

Para obtener opciones de autenticación y autorización más avanzadas, como LDAP o Control de acceso basado en roles (RBAC), consulte la sección Autenticación de administración principal de la guía Arquitectura de seguridad de JBoss EAP.

2.3.1.1. Cómo adicionar un usuario administrativo

  1. Ejecute el script de la herramienta add-user y siga las indicaciones.

    $ EAP_HOME/bin/add-user.sh
    Nota

    Para Windows Server, use el script EAP_HOME\bin\add-user.bat.

  2. Presione ENTER para seleccionar la opción predeterminada a para agregar un usuario de administrativo.

    Este usuario se agregará al ManagementRealm y se autorizará para realizar operaciones administrativas mediante la consola de administración o la CLI de administración. La otra selección (b) agrega un usuario a ApplicationRealm, que se utiliza para aplicaciones y no proporciona permisos particulares.

  3. Ingrese el nombre de usuario y la contraseña deseados. Se le solicitará confirmar la contraseña.

    Nota

    Los nombres de usuario solo pueden contener los siguientes caracteres, en cualquier cantidad y orden:

    • Caracteres alfanuméricos (a-z, A-Z, 0-9)
    • Guiones (-), puntos (.), comas (,), arroba (@)
    • Barra diagonal inversa (\)
    • Signo igual (=)

    De manera predeterminada, JBoss EAP admite contraseñas débiles, pero emite una advertencia.

    Consulte la sección Restricciones para establecer la contraseña de la herramienta Añadir usuario de la Guía de configuración de JBoss EAP para obtener detalles sobre cómo cambiar este comportamiento predeterminado.

  4. Ingrese una lista separada por comas de los grupos a los cuales pertenece el usuario. Si usted no desea que el usuario pertenezca a ninguno de ellos presione ENTER para dejarlo en blanco.
  5. Revise la información e ingrese yes para confirmar.
  6. Determine si este usuario representa una instancia remota de servidor JBoss EAP. Para un usuario administrativo básico, ingrese no.

    Un tipo de usuario que necesite ser agregado al ManagementRealm es un usuario que representa otra instancia de JBoss EAP, la cual debe se capaz de autenticarse para unirse como un miembro de un clúster. Si este es el caso, entonces la respuesta es yes para indicar que se le otorgará un valor secreto en hash que representa la contraseña, la cual deberá ser agregada a un archivo de configuración diferente.

También puede crear usuarios de modo no interactivo pasando parámetros al script add-user. Este método no se recomienda en sistemas compartidos, ya que las contraseñas estarán visibles en archivos de registro y de historiales. Para obtener más información, consulte Cómo ejecutar la herramienta Agregar usuario de forma no interactiva.

2.3.1.2. Cómo ejecutar la herramienta Agregar usuario de forma no interactiva

Ejecute el script add-user de forma no interactiva pasando argumentos en la línea de comandos. Como mínimo, se debe proporcionar el nombre de usuario y la contraseña.

Aviso

Este enfoque no se recomienda en sistemas compartidos, ya que las contraseñas estarán visibles en archivos de registro y de historiales.

Cree un usuario que pertenezca a varios grupos

El siguiente comando agrega un usuario de administración (mgmtuser1) con los grupos guest y mgmtgroup.

$ EAP_HOME/bin/add-user.sh -u 'mgmtuser1' -p 'password1!' -g 'guest,mgmtgroup'
Especifique un archivo de propiedades alternativas

De forma predeterminada, la información de usuario y grupo creada mediante el script add-user se almacena en los archivos de propiedades localizadas en el directorio de configuración de servidor.

La información de usuario se almacena en los siguientes archivos de propiedades:

  • EAP_HOME/standalone/configuration/mgmt-users.properties
  • EAP_HOME/domain/configuration/mgmt-users.properties

La información de grupo es almacenada en los siguientes archivos de propiedades:

  • EAP_HOME/standalone/configuration/mgmt-groups.properties
  • EAP_HOME/domain/configuration/mgmt-groups.properties

Estos directorios predeterminados y nombres de archivos pueden sobrescribirse. El siguiente comando agrega un nuevo usuario especificando un nombre diferente y un sitio para los archivos de propiedades de usuario.

$ EAP_HOME/bin/add-user.sh -u 'mgmtuser2' -p 'password1!' -sc '/path/to/standaloneconfig/' -dc '/path/to/domainconfig/' -up 'newname.properties'

El nuevo usuario fue agregado a los archivos de propiedades localizados en /path/to/standaloneconfig/newname.properties y /path/to/domainconfig/newname.properties. Observe que estos archivos ya deben existir o de lo contrario, verá un error.

Para obtener un listado completo de los argumentos add-user disponibles y sus propósitos, use el argumento --help o consulte la sección Referencia de los argumentos de la herramienta add-user.

2.3.2. Interfaces de administración

2.3.2.1. CLI administrativa

La interfaz de la línea de comandos de administración (CLI) es una herramienta de administración de la línea de comandos para JBoss EAP.

Use la CLI administrativa para iniciar y detener servidores, implementar y desimplementar aplicaciones, configurar parámetros del sistema y realizar otras tareas administrativas. Las operaciones se pueden realizar en modo de lotes (batch) para permitir la ejecución de múltiples tareas como un grupo.

Varios comandos comunes de la terminal están disponibles, tales como ls, cd y pwd. La CLI administrativa también soporta el tabulador de completado.

Para obtener más información sobre el uso de la CLI de administración, incluidos los comandos y operaciones, sintaxis y para ejecución en modo batch, consulte la Guía de CLI de administración de JBoss EAP.

Lance la CLI administrativa
$ EAP_HOME/bin/jboss-cli.sh
Nota

Para Windows Server, use el script EAP_HOME\bin\jboss-cli.bat .

Conéctese a un servidor en ejecución
Conéctese

O puede lanzar la CLI de administración y conectarse en un paso mediante el comando EAP_HOME/bin/jboss-cli.sh --connect.

Mostrar ayuda

Use el siguiente comando para obtener ayuda general.

help

Use el marcador --help en un comando para recibir instrucciones sobre cómo usar ese comando específico. Por ejemplo, para recibir información sobre cómo usar deploy, se ejecuta el siguiente comando.

deploy --help
Salga de la CLI administrativa
quit
Ver parámetros del sistema

El siguiente comando usa la operación read-attribute para desplegar si la fuente de datos de ejemplo está habilitada.

/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
{
    "outcome" => "success",
    "result" => true
}

Cuando se ejecuta en un dominio administrado, debe especificar el perfil que va a actualizar anteponiendo el comando con /profile=PROFILE_NAME.

/profile=default/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
Actualice los parámetros del sistema

El siguiente comando usa la operación write-attribute para inhabilitar el ejemplo de fuente de datos.

/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
Inicie los servidores

La CLI administrativa también puede iniciar y parar servidores cuando se ejecutan en un dominio administrado.

/host=HOST_NAME/server-config=server-one:start

2.3.2.2. Consola administrativa

La consola administrativa es una herramienta de administración basada en la red para JBoss EAP.

Use la consola administrativa para iniciar y detener servidores, implementar y desimplementar aplicaciones, afinar configuraciones del sistema y realizar modificaciones persistentes a la configuración del servidor. La consola de administración también tiene la habilidad de realizar tareas administrativas con notificaciones en vivo cuando algún cambio realizado por el usuario actual requiere que la instancia del servidor sea reiniciada o recargada.

En un dominio administrado, las instancias del servidor y los grupos del servidor en el mismo dominio, se pueden administrar centralmente desde la consola de administración del controlador de dominio.

Para una instancia JBoss EAP que se ejecute en un host local mediante el puerto de administración predeterminado, la consola administrativa, puede ser accedida a través de un navegador en http://localhost:9990/console/App.html. Deberá autenticar un usuario que tenga permisos para acceder a la consola administrativa.

La consola administrativa proporciona las siguientes pestañas para navegar y administrar su servidor autónomo JBoss EAP o el dominio administrado.

Carpeta personal
Aprenda cómo llevar a cabo varias tareas administrativas y de configuración. Haga el tour para familiarizarse con la consola administrativa de JBoss EAP.
Implementaciones
Agregue, quite y habilite implementaciones. En un dominio administrado, asigne las implementaciones a los grupos de servidores.
Configuración
Configure los subsistemas disponibles, los cuales proporcionan funcionalidades tales como servicios Web, mensajería o alta disponibilidad. En un dominio administrado, administre los perfiles que contienen diferentes configuraciones de subsistemas.
Tiempo de ejecución
Vea el tiempo de ejecución, tal como el estado de servidor, el uso de JVM y los registros de servidor. En un domino administrado, administre sus hosts, los grupos de servidor y los servidores.
Control de Acceso
Asigne los roles a usuarios y grupos cuando utilice el control de acceso basado en roles.
Uso de parches
Aplique parches a sus instancias JBoss EAP
Nota

Para realizar un recorrido de su consola de administración, haga clic en el enlace Tomar el tour en la página de inicio de la consola.

2.3.3. Archivos de configuración

2.3.3.1. Archivos de configuración de servidor autónomo

Los archivos de configuración autónomos se localizan en el directorio EAP_HOME/standalone/configuration/. Existe un archivo para cada uno de los cuatro perfiles predefinidos (default, ha, full, full-ha, load-balancer).

Tabla 2.1. Archivos de configuración autónomos

Archivo de configuraciónPropósito

standalone.xml

Este archivo de configuración autónomo es la configuración predeterminada utilizada cuando inicia el servidor autónomo. Contiene toda la información sobre el servidor, incluidos subsistemas, redes, implementaciones, enlaces de sockets y otra información configurable. No proporciona los subsistemas necesarios para mensajería o alta disponibilidad.

standalone-ha.xml

Este archivo de configuración autónomo incluye todos los subsistemas predeterminados y agrega los subsistemas modcluster y jgroups para alta disponibilidad. No proporciona los subsistemas necesarios para mensajería.

standalone-full.xml

Este archivo de configuración autónomo incluye todos los subsistemas predeterminados y agrega los subsistemas messaging-activemq y iiop-openjdk. No proporciona los subsistemas necesarios para alta disponibilidad

standalone-full-ha.xml

Este archivo de configuración incluye soporte para cada subsistema posible, incluidos los de mensajería y alta disponibilidad.

standalone-load-balancer.xml

Este archivo de configuración autónomo incluye los subsistemas mínimos necesarios para usar el equilibrador de carga frontal mod_cluster incorporado para equilibrar la carga de otras instancias de JBoss EAP.

El servidor JBoss EAP utiliza de forma predeterminada el archivo standalone.xml. Para iniciar JBoss EAP con una configuración diferente, use el argumento --server-config . Por ejemplo:

$ EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml

2.3.3.2. Archivos de configuración de dominio administrado

Los archivos de configuración de domino administrado se localizan en el directorio EAP_HOME/domain/configuration/.

Tabla 2.2. Archivos de configuración de dominio administrado

Archivo de configuraciónPropósito

domain.xml

Este es el archivo de configuración principal para un dominio administrado. Solamente el maestro de dominio lee este archivo. Este archivo contiene las configuraciones para todos los perfiles (default, ha, full, full-ha, load-balancer).

host.xml

Este archivo incluye información de configuración para host físico en un dominio administrado, tal como interfaces, enlaces de socket, el nombre del host y otra información específica de host. El archivo host.xml incluye todas las funcionalidades de host-master.xml y host-slave.xml, las cuales se describen a continuación:

host-master.xml

Este archivo incluye únicamente la información de configuración necesaria para ejecutar un servidor como el controlador de dominio maestro.

host-slave.xml

Este archivo incluye únicamente la información de configuración necesaria para ejecutar un servidor como el controlador de host del dominio administrado.

El servidor JBoss EAP utiliza de forma predeterminada el archivo host.xml. Para iniciar JBoss EAP con una configuración diferente, use el argumento --host-config . Por ejemplo:

$ EAP_HOME/bin/domain.sh --host-config=host-master.xml

2.3.3.3. Hacer copia de seguridad de los datos de configuración

Con el fin de restaurar más adelante la configuración del servidor JBoss EAP, se debería hacer una copia de seguridad de los siguientes elementos:

  • EAP_HOME/standalone/configuration/

    • Haga una copia de seguridad de todo el directorio para guardar los datos de usuario, la configuración del servidor y los parámetros de ingreso para servidores autónomos.
  • EAP_HOME/domain/configuration/

    • Haga una copia de seguridad de todo el directorio para guardar el usuario y los datos de perfil, el dominio, la configuración de host y los parámetros para dominios administrados.
  • EAP_HOME/modules/

    • Haga una copia de seguridad de los módulos personalizados.
  • EAP_HOME/welcome-content/

    • Haga una copia de seguridad del contenido de bienvenida.
  • EAP_HOME/bin/

    • Haga una copia de seguridad de los scripts personalizados o los archivos de configuración de arranque.

2.3.3.4. Instantáneas de archivos de configuración

Para ayudar en el mantenimiento y la administración del servidor, JBoss EAP crea una versión con marca de tiempo del archivo de configuración original en el momento del arranque. Cualquier cambio de configuración adicional realizado por las operaciones de administración hará que se realice automáticamente una copia de seguridad del archivo original y que se preserve una copia de trabajo de la instancia para futura referencia o para revertir los cambios. Además, se pueden tomar instantáneas de configuración, que son copias en un momento preciso de la configuración actual del servidor. Un administrador puede guardar y cargar estas instantáneas.

Los siguientes ejemplos usan el archivo standalone.xml, pero el mismo proceso se aplica a los archivos domain.xml y host.xml.

Tomar una instantánea

Use la CLI administrativa para tomar una instantánea de las configuraciones actuales.

:take-snapshot
{
    "outcome" => "success",
    "result" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20151022-133109702standalone.xml"
}
Listar las instantáneas

Use la CLI administrativa para listar todas las instantáneas que han sido tomadas.

:list-snapshots
{
    "outcome" => "success",
    "result" => {
        "directory" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot",
        "names" => [
            "20151022-133109702standalone.xml",
            "20151022-132715958standalone.xml"
        ]
    }
}
Borre la instantánea

Use la CLI administrativa para borrar una instantánea.

:delete-snapshot(name=20151022-133109702standalone.xml)
Inicie el servidor con una instantánea

El servidor puede ser iniciado mediante una instantánea o una versión guardada automáticamente de la configuración.

  1. Vaya al directorio EAP_HOME/standalone/configuration/standalone_xml_history e identifique la instantánea o el archivo de configuración guardado que desea cargar.
  2. Inicie el servidor y señale el archivo de configuración seleccionado. Pase la ruta del archivo relativa al directorio de configuración, EAP_HOME/standalone/configuration/.

    $ EAP_HOME/bin/standalone.sh --server-config=standalone_xml_history/snapshot/20151022-133109702standalone.xml
Nota

Cuando se ejecuta en un dominio administrado, use el argumento --host-config en lugar de especificar el archivo de configuración.

2.3.3.5. Reemplazo de propiedad

JBoss EAP le permite usar expresiones para definir propiedades reemplazables en lugar de valores literales en la configuración. Las expresiones usan el formato ${PARAMETER:DEFAULT_VALUE}. Si se establece el parámetro especificado, se utilizará el valor del parámetro. De lo contrario, se utilizará el valor predeterminado provisto.

Las fuentes que reciben soporte para resolver expresiones son propiedades del sistema, variables de entorno y 'vault'. Para las implementaciones únicamente, la fuente puede corresponder a propiedades enumeradas en un archivo META-INF/jboss.properties que se encuentra en el archivo de implementación. Para tipos de implementación que admiten subimplementaciones, la resolución abarca todas las subimplementaciones si el archivo de propiedades está en la implementación externa, por ejemplo, el EAR. Si el archivo de propiedades está en la subimplementación, la resolución abarcará únicamente esa subimplementación.

El ejemplo a continuación del archivo de configuración standalone.xml establece el valor inet-address para la interfaz public en 127.0.0.1, a menos que se establezca el parámetro jboss.bind.address.

<interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>

El parámetro jboss.bind.address puede ser definido en el inicio de EAP como un servidor autónomo, mediante el siguiente comando:

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
Expresiones anidadas

Las expresiones pueden ser anidadas, lo que permite el uso más avanzado de las expresiones en lugar de valores fijos. El formato de una expresión anidada es como el de una expresión normal, pero una expresión está incorporada en la otra. Por ejemplo:

${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}

Las expresiones anidadas se evalúan de forma recursiva, por lo tanto la expresión inner es la primera evaluada, luego lo será la expresión outer. Las expresiones también pueden ser recursivas, cuando una expresión resuelve a otra expresión, que es luego resuelta. Las expresiones anidadas están permitidas en cualquier parte que las expresiones estén permitidas, a excepción de los comandos de la CLI administrativa.

Un ejemplo de uso de la expresión anidada es cuando la contraseña en una definición de fuente de datos está enmascarada. La configuración para una fuente de datos podría ser la siguiente línea:

<password>${VAULT::ds_ExampleDS::password::1}</password>

El valor de ds_ExampleDS podría ser remplazado por una propiedad de sistema (datasource_name), mediante una expresión anidada. La configuración para la fuente de datos podría en su lugar tener la siguiente línea:

<password>${VAULT::${datasource_name}::password::1}</password>

JBoss EAP primero debe evaluar la expresión ${datasource_name}, luego ingresarla a una expresión más grande y evaluar la expresión resultante. La ventaja de esta configuración es que el nombre de la fuente de datos se abstrae de la configuración corregida.

Remplazo de las propiedades basadas en el descriptor

La configuración de aplicaciones (como los parámetros de conexión de fuente de datos) generalmente varía entre entornos de desarrollo, prueba y producción. Algunas veces, los scripts de compilación del sistema acomodan esta variación, ya que la especificación Java EE no contiene un método para externalizar estas configuraciones. Gracias a JBoss EAP, puede usar el remplazo de propiedades basado en descriptores para administrar la configuración de modo externo.

El remplazo de la propiedad basada en descriptores, substituye las propiedades basadas en descriptores, lo que le permite suprimir los supuestos concernientes al entorno de la aplicación y la cadena de construcción. Se pueden especificar configuraciones específicas del entorno en los descriptores de implementación, en lugar de anotaciones o scripts del sistema de construcción. Usted puede proporcionar la configuración en archivos o como parámetros en la línea de comandos.

Existen varios indicadores en el subsistema ee que controlan si se aplica el remplazo de propiedades.

El indicador jboss-descriptor-property-replacement controla el remplazo del descriptor específico JBoss y se habilita por defecto. Cuando está activado, las propiedades pueden ser remplazadas en los siguientes descriptores de implementación:

  • jboss-ejb3.xml
  • jboss-app.xml
  • jboss-web.xml
  • *-jms.xml
  • *-ds.xml

El siguiente comando de la CLI administrativa puede utilizarse para activar o desactivar el remplazo de propiedad en descriptores específicos JBoss:

/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)

El indicador de descriptor Java EE controlado por el indicador spec-descriptor-property-replacement está desactivado por defecto. Cuando se activa, las propiedades pueden ser remplazadas en los siguientes descriptores de implementación:

  • ejb-jar.xml
  • persistence.xml
  • application.xml
  • web.xml

El siguiente comando de la CLI administrativa puede utilizarse para activar o desactivar el remplazo de propiedad en descriptores Java EE:

/subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)

2.4. Configuración de red y puerto

2.4.1. Interfaces

JBoss EAP hace referencia a interfaces designadas a través de la configuración. Esta acción permite que la configuración haga referencia a las declaraciones de interfaz individuales con nombres lógicos, en lugar de requerir la información total de la interfaz en cada uso.

También facilita la configuración en un dominio administrado donde los detalles de la interfaz de red pueden variar a través de múltiples máquinas. Cada instancia de servidor puede corresponder a un grupo de nombre lógico.

Los archivos standalone.xml, domain.xml y host.xml incluyen declaraciones de interfaz. Existen varios nombres de interfaz preconfigurados, según la configuración predeterminada que se utilice. La interfaz management puede utilizarse para todos los componentes y servicios que requieren la capa de administración, incluido el extremo de administración HTTP. La interfaz public se puede utilizar para todas las comunicaciones de red relacionadas con aplicaciones. La interfaz unsecure se utiliza para sockets IIOP en la configuración estándar. La interfaz private se utiliza para sockets JGroups en la configuración estándar.

2.4.1.1. Configuración de interfaz predeterminada

<interfaces>
  <interface name="management">
    <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
  </interface>
  <interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
  </interface>
  <interface name="private">
    <inet-address value="${jboss.bind.address.private:127.0.0.1}"/>
  </interface>
  <interface name="unsecure">
    <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
  </interface>
</interfaces>

JBoss EAP vincula por defecto estas interfaces a 127.0.0.1, aunque estos valores pueden sobrescribirse en tiempo de ejecución al configurar la propiedad adecuada. Por ejemplo, inet-address de la interfaz pública puede configurarse al iniciar JBoss EAP como un servidor autónomo con el siguiente comando.

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS

De modo alternativo, puede usar la opción -b en la línea de comandos de arranque del servidor. Para obtener más información sobre las opciones de arranque del servidor, consulte Argumentos de tiempo de ejecución de servidor.

Importante

Si modifica las interfaces o los puertos de red predeterminados que usa JBoss EAP, también debe recordar cambiar los scripts que usan las interfaces o los puertos modificados, que incluyen los scripts de servicio de JBoss EAP, así como especificar la interfaz y el puerto correctos al acceder a la consola de administración o la CLI de administración.

2.4.1.2. Configuración de interfaces

Las interfaces de red se declaran al especificar el nombre lógico y los criterios de selección para la interfaz física. Los criterios de selección pueden hacer referencia a una dirección comodín o especificar un grupo de una o más características que una interfaz o dirección deben tener para ser una correspondencia válida. Para obtener un listado de todos los criterios de selección de interfaces disponibles, consulte la sección Atributos de interfaces.

Las interfaces pueden ser configuradas mediante la consola administrativa o la CLI administrativa. Abajo se presentan varios ejemplos de cómo agregar y actualizar interfaces. El comando de la CLI administrativa aparece primero, seguido de la configuración XML correspondiente.

Agregue una interfaz con un valor NIC

Agregue una nueva interfaz con un valor NIC de eth0.

/interface=external:add(nic=eth0)
<interface name="external">
   <nic name="eth0"/>
</interface>
Agregue la interfaz con varios valores condicionales

Agregue una nueva interfaz que coincida con una interfaz o dirección en la subred correcta si la interfaz está activa, soporta multidifusión y no es punto a punto.

/interface=default:add(subnet-match=192.168.0.0/16,up=true,multicast=true,not={point-to-point=true})
<interface name="default">
   <subnet-match value="192.168.0.0/16"/>
   <up/>
   <multicast/>
   <not>
      <point-to-point/>
   </not>
</interface>
Actualice el atributo de interfaz

Actualice el valor inet-address predeterminado de la interfaz public, manteniendo la propiedad jboss.bind.address para permitir que este valor sea configurado en tiempo de ejecución.

/interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:192.168.0.0}")
<interface name="public">
    <inet-address value="${jboss.bind.address:192.168.0.0}"/>
</interface>
Agregue una interfaz a un servidor en un dominio administrado
/host=HOST_NAME/server-config=SERVER_NAME/interface=INTERFACE_NAME:add(inet-address=127.0.0.1)
<servers>
   <server name="SERVER_NAME" group="main-server-group">
      <interfaces>
         <interface name="INTERFACE_NAME">
            <inet-address value="127.0.0.1"/>
         </interface>
      </interfaces>
   </server>
</servers>

2.4.2. Enlaces de socket

Los enlaces de socket y los grupos de enlaces de sockets le permiten definir puertos de red y su relación con las interfaces de red requeridas para la configuración de JBoss 6 EAP. Un enlace de socket es una configuración designada para un socket. Un grupo de enlaces de sockets es una colección de declaraciones de enlaces de sockets agrupadas en un nombre lógico.

Esto permite a otras secciones de la configuración referirse a los enlaces de socket por su nombre lógico, en lugar de requerir todos los detalles de la configuración del socket en cada uso.

Las declaraciones para estas configuraciones designadas se encuentran en los archivos de configuración standalone.xml y domain.xml. Un servidor autónomo contiene únicamente un grupo de enlaces de socket, mientras que un dominio administrado puede contener múltiples grupos. Puede crear un grupo de enlaces de sockets para cada grupo de servidor en el dominio administrado o compartir un grupo de enlaces de sockets entre múltiples grupos de servidor.

Los puertos utilizados por JBoss EAP dependen en forma predeterminada de los grupos de enlaces de sockets que se utilizan y de los requisitos de sus implementaciones individuales.

2.4.2.1. Puertos de administración

Los puertos de administración se consolidaron en JBoss EAP 7. JBoss EAP 7 usa en forma predeterminada el puerto 9990 para administración nativa, usada por la CLI de administración , y para administración HTTP, usada por la consola de administración basada en la Web. El puerto 9999, que se usaba como el puerto de administración nativo en JBoss EAP 6, ya no se utiliza pero aún puede habilitarse si se desea.

Si HTTPS está habilitado para consola de administración, entonces se utiliza por defecto el puerto 9993.

2.4.2.2. Enlaces de sockets predeterminados

JBoss EAP se distribuye con un grupo de enlaces de socket para cada uno de los cinco perfiles predefinidos (default, ha, full, full-ha, load-balancer).

Para obtener información más detallada sobre los enlaces de socket predeterminados, tales como puertos y descripciones predeterminados, consulte la sección Enlaces de sockets predeterminados.

Importante

Si modifica las interfaces o los puertos de red predeterminados que usa JBoss EAP, también debe recordar cambiar los scripts que usan las interfaces o los puertos modificados, que incluyen los scripts de servicio de JBoss EAP, así como especificar la interfaz y el puerto correctos al acceder a la consola de administración o la CLI de administración.

Servidor autónomo

Cuando se ejecuta como un servidor autónomo, únicamente se define un grupo de enlaces de socket por archivo de configuración. Cada archivo de configuración autónomo (standalone.xml, standalone-ha.xml, standalone-full.xml, standalone-full-ha.xml, standalone-load-balancer.xml) define los enlaces de socket para las tecnologías utilizadas por su perfil correspondiente.

Por ejemplo, el archivo de configuración autónomo predeterminado (standalone.xml) especifica los siguientes enlaces de sockets:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>
Dominio administrado

Cuando se ejecuta en un domino administrado, todos los grupos de enlaces de socket se definen en el archivo domain.xml. Existen cinco grupos de enlaces de sockets predefinidos:

  • standard-sockets
  • ha-sockets
  • full-sockets
  • full-ha-sockets
  • load-balancer-sockets

Cada grupo de enlaces especifica enlaces de socket para tecnologías utilizadas por su perfil correspondiente. Por ejemplo, el grupo de enlaces de sockets full-ha-sockets define varios enlaces de sockets jgroups, los cuales son utilizados por el perfil full-ha para alta disponibilidad.

<socket-binding-groups>
  <socket-binding-group name="standard-sockets" default-interface="public">
    <!-- Needed for server groups using the 'default' profile  -->
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
      <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
  </socket-binding-group>
  <socket-binding-group name="ha-sockets" default-interface="public">
    <!-- Needed for server groups using the 'ha' profile  -->
    ...
  </socket-binding-group>
  <socket-binding-group name="full-sockets" default-interface="public">
    <!-- Needed for server groups using the 'full' profile  -->
    ...
  </socket-binding-group>
  <socket-binding-group name="full-ha-sockets" default-interface="public">
    <!-- Needed for server groups using the 'full-ha' profile  -->
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="iiop" interface="unsecure" port="3528"/>
    <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>
    <socket-binding name="jgroups-mping" interface="private" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
    <socket-binding name="jgroups-tcp" interface="private" port="7600"/>
    <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
    <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
      <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
  </socket-binding-group>
  <socket-binding-group name="load-balancer-sockets" default-interface="public">
    <!-- Needed for server groups using the 'load-balancer' profile  -->
    ...
  </socket-binding-group>
</socket-binding-groups>
Nota

La configuración de socket para las interfaces de administración se define en el archivo host.xml del controlador de dominio

2.4.2.3. Configuración de enlaces de socket

Cuando defina un enlace de socket, puede configurar los atributos port e interface, así como parámetros multidifusión, como multicast-address y multicast-port. Para obtener más información sobre todos los atributos de enlaces de sockets disponibles, consulte la sección Atributos de enlaces de sockets.

Los vínculos de sockets se pueden configurar mediante la consola de administración o la CLI de administración. Los siguientes pasos lo guían en la adición de un grupo de enlaces de sockets, en la adición de un enlace de sockets y en la configuración de los parámetros de enlaces de sockets mediante la CLI de administración.

  1. Agregue un nuevo grupo de enlace de socket. Observe que este paso no puede realizarse cuando se está ejecutando como servidor autónomo.

    /socket-binding-group=new-sockets:add(default-interface=public)
  2. Agregue el enlace de socket.

    /socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)
  3. Cambie el enlace de socket para usar una interfaz diferente a la predeterminada y establecida por el grupo de enlace de socket.

    /socket-binding-group=new-sockets/socket-binding=new-socket-binding:write-attribute(name=interface,value=unsecure)

El siguiente ejemplo muestra cómo se vería la configuración XML después de completar los pasos anteriores.

<socket-binding-groups>
    ...
    <socket-binding-group name="new-sockets" default-interface="public">
        <socket-binding name="new-socket-binding" interface="unsecure" port="1234"/>
    </socket-binding-group>
</socket-binding-groups>

2.4.2.4. Port Offsets

Un valor 'port offset' es una diferencia numérica agregada a todos los valores de puertos especificados en el grupo de enlaces de sockets para dicho servidor. Permite al servidor heredar los valores de puerto definidos en su grupo de enlaces de sockets, con una diferencia para garantizar que no entre en conflicto con ningún otro servidor en el mismo host. Por ejemplo, si el puerto HTTP del grupo de enlaces de sockets es 8080, y un servidor usa un 'port offset' de 100, su puerto HTTP será 8180.

El ejemplo a continuación muestra la configuración de un 'Port Offset' de 250 para un servidor en un dominio administrado mediante la CLI administrativa.

/host=master/server-config=server-two/:write-attribute(name=socket-binding-port-offset,value=250)

El desfase de puerto de CLI también pueden utilizarse para servidores en un dominio administrado y para ejecutar servidores autónomos múltiples en el mismo host.

Puede pasar en un desfase de puerto cuando inicie el servidor autónomo mediante la propiedad jboss.socket.binding.port-offset.

$ EAP_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100

2.4.3. Direcciones IPv6

Por defecto, JBoss EAP se configura para ejecutarse con direcciones IPv4. Los pasos a continuación muestran cómo configurar JBoss EAP para ejecutarse mediante direcciones IPv6.

Configurar la pila JVM para direcciones IPv6

Actualice la configuración de arranque para preferir direcciones IPv6.

  1. Abra el archivo de configuración de arranque.

    • Cuando se ejecuta como un servidor autónomo, modifique el archivo EAP_HOME/bin/standalone.conf (o standalone.conf.bat para Windows Server).
    • Cuando se ejecuta en un servidor administrado, modifique el archivo EAP_HOME/bin/domain.conf (o domain.conf.bat para Windows Server).
  2. Establezca la propiedad java.net.preferIPv4Stack como false.

    -Djava.net.preferIPv4Stack=false
  3. Agregue la propiedad java.net.preferIPv6Addresses y defínala como true.

    -Djava.net.preferIPv6Addresses=true

El siguiente ejemplo muestra cómo se verían las opciones JVM en el archivo de configuración de arranque después de hacer los cambios anteriores.

# Especifique opciones para pasar a la máquina virtual Java.
#
if [ "x$JAVA_OPTS" = "x" ]; then
   JAVA_OPTS="-Xms1303m -Xmx1303m -Djava.net.preferIPv4Stack=false"
   JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
   JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv6Addresses=true"
else
Actualice las declaraciones de interfaz para direcciones IPv6

Los valores de la interfaz predeterminada en la configuración pueden cambiarse en direcciones IPv6. Por ejemplo, el comando de la CLI administrativa de abajo, establece la interfaz management en la dirección loopback IPv6 (::1).

/interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:[::1]}")

El siguiente ejemplo muestra cómo se vería la configuración XML después de ejecutar el comando anterior.

<interfaces>
    <interface name="management">
        <inet-address value="${jboss.bind.address.management:[::1]}"/>
    </interface>
    ....
</interfaces>