1.3. JBoss EAP 管理
JBoss EAP 使用简化的配置,每个单机服务器或受管域有一个配置文件。单机服务器的默认配置存储在 EAP_HOME/standalone/configuration/standalone.xml 文件中,受管域的默认配置则存储在 EAP_HOME/domain/configuration/domain.xml 文件中。此外,主机控制器的默认配置存储在 EAP_HOME/domain/configuration/host.xml 文件中。
可以使用命令行管理 CLI、基于 Web 的管理控制台、Java API 或 HTTP API 来配置 JBoss EAP。使用这些管理接口所做的更改将自动保留,并且管理 API 将覆盖 XML 配置文件。管理 CLI 和管理控制台是首选的方法,不建议手动编辑 XML 配置文件。
JBoss EAP 支持使用 YAML 文件为独立服务器修改 XML 配置。如需更多信息,请参阅使用 YAML 文件更新独立服务器配置。
受管域中的服务器 不支持 YAML 配置。
1.3.1. 管理用户 复制链接链接已复制到粘贴板!
默认 JBoss EAP 配置提供本地身份验证,让用户可以访问本地主机上的管理 CLI,而无需身份验证。
但是,如果您要远程访问管理 CLI,则必须添加管理用户,或使用管理控制台,即使流量来自本地主机上也被视为远程访问。如果在添加管理用户之前尝试访问管理控制台,您会收到错误消息。
如果使用图形安装程序安装 JBoss EAP,则在安装过程中创建管理用户。
本指南介绍了使用 add-user 脚本对 JBoss EAP 进行简单的用户管理,此脚本可用于将新用户添加到用于开箱即用身份验证的属性文件中。
有关更高级的身份验证和授权选项,如 LDAP 或基于角色的访问控制(RBAC),请参见 JBoss EAP 安全架构的核心管理身份验证部分。
1.3.1.1. 添加管理用户 复制链接链接已复制到粘贴板!
运行
add-user实用程序脚本并按照提示进行操作。EAP_HOME/bin/add-user.sh
$ EAP_HOME/bin/add-user.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意对于 Windows Server,请使用
EAP_HOME\bin\add-user.bat脚本。按
ENTER,选择默认选项a以添加管理用户。此用户将添加到 ManagementRealm 中,并将获得使用管理控制台或管理控制台执行管理操作的授权。另一个选择
b将用户添加到 ApplicationRealm 中,该应用程序用于应用程序,不提供任何特定权限。输入所需的用户名和密码。系统将提示您确认密码。
注意用户名只能以任何数字和顺序包含以下字符:
- 字母数字字符(a-z、A-Z、0-9)
- 短划线(-)、句点(.)、逗号(@)
- 反斜杠(\)
- 等号 (=)
默认情况下,JBoss EAP 允许弱密码,但会发出警告。
如需了解有关更改此默认行为的详细信息,请参阅 JBoss EAP 配置指南的设置附加用户实用程序密码限制一节。
-
输入以逗号分隔的用户所属组的列表。如果您不希望用户属于任何组,请按
ENTER将它留空。 -
检查信息并输入
yes进行确认。 确定此用户是否代表远程 JBoss EAP 服务器实例。对于基本管理用户,请输入
no.可能需要添加到 ManagementRealm 的一种用户是代表另一个 JBoss EAP 实例的用户,它必须能够进行身份验证以作为群集成员加入。如果出现这种情况,则在此提示中回答
yes,系统会为您提供一个表示用户密码的散列化机密值,该值需要添加到其他配置文件中。
也可以通过向 add-user 脚本传递参数,以非交互方式创建用户。共享系统上不建议使用此方法,因为密码将在日志和历史记录文件中可见。如需更多信息,请参阅使用非交换方式运行 Add-User 实用程序。
1.3.1.2. 使用交换方式运行 Add-User 实用程序 复制链接链接已复制到粘贴板!
您可以通过在命令行中传递参数,以非交互方式运行 add-user 脚本。必须至少提供用户名和密码。
共享系统上不建议使用此方法,因为密码将在日志和历史记录文件中可见。
创建一个属于多个组的用户
以下命令添加了一个管理用户, mgmtuser1,它带有 guest 和 mgmtgroup 组。
EAP_HOME/bin/add-user.sh -u 'mgmtuser1' -p 'password1!' -g 'guest,mgmtgroup'
$ EAP_HOME/bin/add-user.sh -u 'mgmtuser1' -p 'password1!' -g 'guest,mgmtgroup'
指定替代属性文件
默认情况下,使用 add-user 脚本创建的用户和组信息存储在服务器配置目录中的属性文件中。
用户信息存储在以下属性文件中:
-
EAP_HOME/standalone/configuration/mgmt-users.properties -
EAP_HOME/domain/configuration/mgmt-users.properties
组信息存储在以下属性文件中:
-
EAP_HOME/standalone/configuration/mgmt-groups.properties -
EAP_HOME/domain/configuration/mgmt-groups.properties
这些默认目录和属性文件名可以被覆盖。以下命令添加新用户,为用户属性文件指定不同的名称和位置。
EAP_HOME/bin/add-user.sh -u 'mgmtuser2' -p 'password1!' -sc '/path/to/standaloneconfig/' -dc '/path/to/domainconfig/' -up 'newname.properties'
$ EAP_HOME/bin/add-user.sh -u 'mgmtuser2' -p 'password1!' -sc '/path/to/standaloneconfig/' -dc '/path/to/domainconfig/' -up 'newname.properties'
新用户已添加到位于 /path/to /standaloneconfig/newname.properties 和 /path/to /domainconfig/newname.properties 的用户属性文件中。请注意,这些文件必须已经存在,否则您将看到错误。
有关所有可用 add-user 参数及其目的的完整列表,请使用 --help 参数或查看 Add-user 参数 部分。
1.3.2. 管理接口 复制链接链接已复制到粘贴板!
1.3.2.1. 管理 CLI 复制链接链接已复制到粘贴板!
管理命令行界面(CLI)是 JBoss EAP 的命令行管理工具。
使用管理 CLI 启动和停止服务器、部署和取消部署应用、配置系统设置,以及执行其他管理任务。操作可以在批处理模式下执行,允许以组形式运行多个任务。
许多常见的终端命令可用,如 ls、cd 和 pwd。管理 CLI 也支持 tab 自动完成功能。
有关使用管理 CLI 的详细信息,包括命令和操作、语法以及批处理模式下运行,请参阅 JBoss EAP 管理 CLI 指南。
启动管理 CLI
EAP_HOME/bin/jboss-cli.sh
$ EAP_HOME/bin/jboss-cli.sh
对于 Windows Server,请使用 EAP_HOME\bin\jboss-cli.bat 脚本。
连接到正在运行的服务器
connect
connect
或者,您可以使用 EAP_HOME/bin/jboss-cli.sh --connect 命令启动管理 CLI 并在一个步骤中进行连接。
显示帮助
使用以下命令获取一般帮助:
help
help
在命令中使用 --help 标志,以接收有关使用该特定命令的说明。例如,若要接收关于使用 deploy 的信息,请执行以下命令:
deploy --help
deploy --help
退出管理 CLI
quit
quit
查看系统设置
以下命令使用 read-attribute 操作来显示是否启用了示例数据源:
/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
{
"outcome" => "success",
"result" => true
}
/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
{
"outcome" => "success",
"result" => true
}
在受管域中运行时,您必须通过 /profile=PROFILE_NAME 命令指定要更新的配置集。
/profile=default/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
/profile=default/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
更新系统设置
以下命令使用 write-attribute 操作来禁用示例数据源。
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
启动服务器
管理 CLI 也可用于在受管域中运行时启动和停止服务器。
/host=HOST_NAME/server-config=server-one:start
/host=HOST_NAME/server-config=server-one:start
1.3.2.2. 管理控制台 复制链接链接已复制到粘贴板!
管理控制台是用于 JBoss EAP 的基于 Web 的管理工具。
使用管理控制台启动和停止服务器、部署和取消部署应用、调优系统设置,以及对服务器配置进行持续修改。管理控制台还具备执行管理任务的功能,当当前用户执行的任何更改都要求重新启动或重新加载服务器实例时,实时通知功能。
在受管域中,可以从域控制器的管理控制台集中管理同一域中的服务器实例和服务器组。
对于使用默认管理端口在本地主机上运行的 JBoss EAP 实例,可通过位于 http://localhost:9990/console/index.html 的 Web 浏览器访问管理控制台。您将需要使用具有访问管理控制台权限的用户进行身份验证。
管理控制台提供下列选项卡,用于浏览和管理 JBoss EAP 单机服务器或受管域。
- Home
- 了解如何完成几个常见配置和管理任务。参加导览,熟悉 JBoss EAP 管理控制台。
- Deployments
- 添加、移除和启用部署。在受管域中,将部署分配到服务器组。
- Configuration
- 配置可用的子系统,提供 Web 服务、消息传递或高可用性等功能。在受管域中,管理包含不同子系统配置的配置文件。
- Runtime
- 查看运行时信息,如服务器状态、JVM 使用量和服务器日志。在受管域中,管理您的主机、服务器组和服务器。
- Patching
- 将补丁应用到您的 JBoss EAP 实例。
- Access Control
- 在使用基于角色的访问控制时,将角色分配给用户和组。
1.3.3. 配置文件 复制链接链接已复制到粘贴板!
1.3.3.1. 独立服务器配置文件 复制链接链接已复制到粘贴板!
独立配置文件位于 EAP_HOME/standalone/configuration/ 目录中。对于五个预定义的配置集(default, ha, full, full-ha, load-balancer),每个都有单独的文件。
| 配置文件 | 用途 |
|---|---|
|
| 此独立配置文件是启动单机服务器时使用的默认配置。它包含有关服务器的所有信息,包括子系统、网络、部署、套接字绑定和其他可配置的详细信息。它不提供消息传递或高可用性所需的子系统。 |
|
|
此单机配置文件包含所有默认子系统,并添加 |
|
|
此单机配置文件包含所有默认子系统,并添加 |
|
| 此独立配置文件包括对每一种可能子系统的支持,包括消息传递和高可用性方面的支持。 |
|
| 此单机配置文件包含使用内置 mod_cluster 前端负载平衡器对其他 JBoss EAP 实例进行负载平衡所需的最小子系统。 |
默认情况下,将 JBoss EAP 作为单机服务器启动使用 standalone.xml 文件。若要使用其他配置启动 JBoss EAP,可使用 --server-config 参数:例如,
EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml
$ EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml
1.3.3.1.1. 使用 YAML 文件更新独立服务器配置 复制链接链接已复制到粘贴板!
使用 YAML 文件配置单机服务器可外部化自定义流程,并提高服务器升级的速度。使用此功能时,服务器以只读模式启动。这意味着,在服务器重启后,对配置的更改不会保留。
受管域中的服务器 不支持 YAML 配置。
用户可以修改 YAML 文件中的各种资源。YAML 文件支持以下资源:
-
core-service -
interface -
socket-binding-group -
subsystem -
system-property
YAML 文件 不支持 以下资源:
-
扩展:向服务器添加扩展。不支持这个元素,因为它可能需要缺少的模块。 -
部署:将部署添加到服务器。这个元素不被支持,因为它除了配置外还需要更多大量更改。 -
deployment-overlay:将 deployment-overlays 添加到服务器。这个元素不被支持,因为它除了配置外还需要更多大量更改。 -
路径:在解析 YAML 文件时定义就绪。
YAML root 节点是 wildfly-configuration。您可以跟踪模型树来修改资源。如果已存在资源(由 XML 配置文件或以前的 YAML 文件创建),您可以使用模型树更新它。如果资源不存在,您可以使用模型树创建它。
定义新的 PostGresql 数据源的 YAML 配置文件示例
上面的示例定义了名为 postgresql 的 jdbc-driver,以及名为 PostgreSQLDS 的数据源。
您不能使用 YAML 配置文件来管理模块。相反,您需要手动或通过管理 CLI 创建或调配 org.postgresql.jdbc 模块。
1.3.3.1.2. 使用标签进行 YAML 文件操作 复制链接链接已复制到粘贴板!
您可以使用标签对 YAML 配置文件执行几个操作。
!undefine: undefine a attributeundefine
CONSOLE日志记录器级别 YAML 配置文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow !remove:删除资源删除嵌入的 Artemis 代理并连接到远程代理 YAML 配置文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow !list-add: 向列表添加一个元素(使用可选索引)将
RemoteTransactionPermission添加到权限列表 YAML 配置文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果未定义
index属性,该条目将附加到列表的末尾。
1.3.3.1.3. 使用 YAML 文件启动单机服务器 复制链接链接已复制到粘贴板!
您可以使用 YAML 配置文件启动单机服务器。
流程
- 打开终端。
使用以下命令启动带有 YAML 文件的单机服务器:
./standalone.sh -y=/home/ehsavoie/dev/wildfly/config2.yml:config.yml -c standalone-full.xml
./standalone.sh -y=/home/ehsavoie/dev/wildfly/config2.yml:config.yml -c standalone-full.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow --yamlor-y参数允许您传递 YAML 文件列表。您必须使用分号(;)对于 Windows Server 或基于 Unix 的操作系统的冒号(:)来分隔每个 YAML 文件路径。您可以使用绝对路径、相对于当前执行目录的路径,或者相对于独立配置目录的路径。
操作按照定义文件的顺序以及 XML 配置定义初始操作后的顺序应用。
1.3.3.2. 受管域配置文件 复制链接链接已复制到粘贴板!
受管域配置文件位于 EAP_HOME/domain/configuration/ 目录中。
| 配置文件 | 用途 |
|---|---|
|
| 这是受管域的主配置文件。只有域 master 会读取此文件。此文件包含所有配置集(default, ha, full, full-ha, load-balancer)的配置。 |
|
|
此文件包含特定于受管域中物理主机的配置详细信息,如网络接口、套接字绑定、主机名称和其他特定于主机的详细信息。 |
|
| 此文件仅包含将服务器作为主域控制器运行所需的配置详细信息。 |
|
| 此文件仅包含作为受管域主机控制器运行服务器所需的配置详细信息。 |
默认情况下,在受管域中启动 JBoss EAP 将使用 host.xml 文件。若要使用其他配置启动 JBoss EAP,可使用 --host-config 参数:例如,
EAP_HOME/bin/domain.sh --host-config=host-master.xml
$ EAP_HOME/bin/domain.sh --host-config=host-master.xml
1.3.3.3. 备份配置数据 复制链接链接已复制到粘贴板!
为了稍后恢复 JBoss EAP 服务器配置,应备份以下位置中的项目:
EAP_HOME/standalone/configuration/- 备份整个目录,以保存单机服务器的用户数据、服务器配置和日志记录设置。
EAP_HOME/domain/configuration/- 备份整个目录,以保存用户和配置文件数据、域和主机配置,以及受管域的日志记录设置。
EAP_HOME/modules/- 备份任何自定义模块。
EAP_HOME/welcome-content/- 备份任何自定义欢迎内容。
EAP_HOME/bin/- 备份任何自定义脚本或启动配置文件。
1.3.3.4. 配置文件快照 复制链接链接已复制到粘贴板!
为了协助服务器维护和管理,JBoss EAP 在启动时创建原始配置文件的时间戳版本。管理操作的任何其他配置更改将导致自动备份原始文件,保留实例的工作副本供引用和回滚。此外,还可以生成配置快照,它们是当前服务器配置的即时副本。这些快照可由管理员保存和加载。
以下示例使用 standalone.xml 文件,但同一进程适用于 domain.xml 和 host.xml 文件。
进行快照
使用管理 CLI 为当前配置生成快照。
:take-snapshot
{
"outcome" => "success",
"result" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20151022-133109702standalone.xml"
}
:take-snapshot
{
"outcome" => "success",
"result" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20151022-133109702standalone.xml"
}
列出快照
使用管理 CLI 列出已执行的所有快照。
删除快照
使用管理 CLI 删除快照。
:delete-snapshot(name=20151022-133109702standalone.xml)
:delete-snapshot(name=20151022-133109702standalone.xml)
使用快照启动服务器
可以使用快照或自动保存的配置启动服务器。
-
进入
EAP_HOME/standalone/configuration/standalone_xml_history目录,找到要加载的快照或保存的配置文件。 启动服务器并指向所选配置文件。传递与配置目录相关的文件路径
EAP_HOME/standalone/configuration/。EAP_HOME/bin/standalone.sh --server-config=standalone_xml_history/snapshot/20151022-133109702standalone.xml
$ EAP_HOME/bin/standalone.sh --server-config=standalone_xml_history/snapshot/20151022-133109702standalone.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在受管域中运行时,请使用 --host-config 参数来指定配置文件。
1.3.3.5. 属性替换 复制链接链接已复制到粘贴板!
JBoss EAP 允许您使用表达式来定义可在配置中替换字面值的可替换属性。表达式的格式为 ${PARAMETER:DEFAULT_VALUE}。如果设置了指定参数,则将使用参数的值。否则,将使用提供的默认值。
解析表达式支持的源包括系统属性、环境变量和密码库。对于部署,源可以是部署存档中的 META-INF/jboss.properties 文件中的属性。对于支持子部署的部署类型,如果属性文件位于外部部署中,则解析范围仅限于所有子部署,如 EAR。如果属性文件在子部署中,则解析的范围仅限于该子部署。
以下 standalone.xml 配置文件的示例将 public 接口的 inet-address 设为 127.0.0.1,除非设置了 jboss.bind.address 参数。
<interface name="public">
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
将 EAP 启动为单机服务器时,可以使用以下命令设置 jboss.bind.address 参数:
EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
嵌套表达式
表达式可以嵌套,允许更高级地使用表达式来代替固定值。嵌套表达式的格式类似于普通表达式的格式,但一个表达式被嵌入在另一个表达式中,例如:
${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}
${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}
嵌套表达式是递归评估的,因此首先评估内嵌表达式,然后评估外部表达式。表达式也可能是递归的,其中一个表达式解析为另外一个表达式,然后解析。允许表达式的任何位置都允许嵌套表达式,但管理 CLI 命令除外。
例如,如果数据源定义中使用的密码被屏蔽,则可以使用嵌套表达式。数据源的配置可能包含以下行:
<password>${VAULT::ds_ExampleDS::password::1}</password>
<password>${VAULT::ds_ExampleDS::password::1}</password>
ds_ExampleDS 的值可以替换为使用嵌套表达式的系统属性(datasource_name)。数据源的配置可以改为有以下行:
<password>${VAULT::${datasource_name}::password::1}</password>
<password>${VAULT::${datasource_name}::password::1}</password>
JBoss EAP 首先评估表达式 ${datasource_name},然后将其输入到更大的表达式并评估生成的表达式。此配置的优点在于数据源的名称是从固定配置中提取的。
基于描述符的特征替换
应用程序配置(如数据源连接参数)通常会因开发、测试和生产环境而异。构建系统脚本有时可以容纳这种差异,因为 Jakarta EE 规范不包含将这些配置外部化的方法。借助 JBoss EAP,您可以使用基于描述符的属性替换在外部管理配置。
基于描述符的属性替换基于描述符的属性,允许您从应用和构建链中删除对环境相关的假设。特定环境的配置可以在部署描述符中指定,而不是注释或构建系统脚本。您可以在文件中提供配置,或者作为参数在命令行中提供。
ee 子系统中有几个标记控制是否应用属性替换。
JBoss 特定的描述符替换由 jboss-descriptor-property-replacement 标志控制,默认情况下被启用。启用后,可以在以下部署描述符中替换属性:
-
jboss-ejb3.xml -
jboss-app.xml -
jboss-web.xml -
jboss-permissions.xml -
*-jms.xml -
*-ds.xml
以下管理 CLI 命令可用于启用或禁用特定于 JBoss 的描述符中的属性替换:
/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)
/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)
Jakarta EE 描述符替换由 spec-descriptor-property-replacement 标志控制,默认为 禁用。启用后,可以在以下部署描述符中替换属性:
-
ejb-jar.xml -
permissions.xml -
persistence.xml -
application.xml -
web.xml
以下管理 CLI 命令可用于在 Jakarta EE 描述符中启用或禁用属性替换:
/subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)
/subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)