1.3. JBoss EAP 管理
您可以使用命令行管理 CLI、基于 Web 的管理控制台、Java API 或 HTTP API 来配置 JBoss EAP。您使用这些管理接口所做的更改会自动永久保留,管理 API 会覆盖 XML 配置文件。管理 CLI 和管理控制台是首选的方法,不建议手动编辑 XML 配置文件。
JBoss EAP 使用简化的配置,并且每个独立服务器或受管域中的每台服务器都有一个配置文件。
-
独立服务器的默认配置存储在
EAP_HOME/standalone/configuration/standalone.xml文件中。 -
受管域中服务器的默认配置存储在
EAP_HOME/domain/configuration/domain.xml文件中。 -
主机控制器的默认配置存储在
EAP_HOME/domain/configuration/host.xml文件中。
1.3.1. 管理用户 复制链接链接已复制到粘贴板!
如果要远程访问管理 CLI 或者使用管理控制台,您必须添加管理用户,即使流量源自于本地主机,也会被视为远程访问。如果在添加管理用户之前尝试访问管理控制台,您会收到错误消息。
默认的 JBoss EAP 配置提供本地身份验证,使用户可以访问本地主机上的管理 CLI,而无需进行身份验证。
如果您使用图形安装程序安装 JBoss EAP,则图形安装程序在安装过程中创建一个管理用户。
1.3.2. 添加管理用户 复制链接链接已复制到粘贴板!
您可以使用 add-user 脚本为 JBoss EAP 添加管理用户,该脚本是向属性文件添加新用户以进行立即身份验证的工具。
先决条件
- 您已安装了 JBoss EAP。
流程
- 启动管理 CLI。
运行
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脚本。
-
对于 Windows Server,请使用
按 ENTER 选择默认选项
a来添加管理用户。这会将用户添加到 ManagementRealm,并授权用户使用管理控制台或管理 CLI 来执行管理操作。另一个选择
b将用户添加到 ApplicationRealm 中,该应用程序用于应用程序,不提供任何特定权限。输入用户名和密码。提示时必须确认密码。
注意用户名只能以任何数字和顺序包含以下字符:
- 字母数字字符(a-z、A-Z、0-9)
- 短划线(-)、句点(.)、逗号(@)
- 反斜杠(\)
- 等号 (=)
默认情况下,JBoss EAP 允许弱密码,但会有警告。
- 输入以逗号分隔的用户所属组的列表。如果您不希望用户属于任何组,请按 ENTER 将其留空。
- 检查信息并输入 yes 确认。
确定此用户是否代表远程 JBoss EAP 服务器实例。对于基本管理用户,请输入 no。
如果您要将用户添加到 ManagementRealm,其代表需要连接到域控制器的主机控制器,请对此提示回答 yes。您会获得一个编码的 secret 值,表示必须添加到主机控制器的
host*.xml文件中的用户的密码。
您可以通过将参数传递给 add-user 脚本来以非交互方式创建用户。共享系统上不建议使用此方法,因为密码将在日志和历史记录文件中可见。
1.3.3. 以非交互方式运行 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 参数。
1.3.4. 管理 CLI 复制链接链接已复制到粘贴板!
管理命令行界面(CLI)是 JBoss EAP 的命令行工具。
使用管理 CLI 启动和停止服务器、部署和删除应用、配置系统设置,以及执行其他管理任务。您可以在批处理模式下执行操作,允许多个任务作为一个组来运行。
有许多常见的终端命令可用,如 ls (list)、cd (更改目录)和 pwd (打印工作目录)。管理 CLI 也支持 tab 自动完成功能。
启动管理 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
使用以下命令退出管理 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)
查看子系统配置
以下命令使用 read-resource-description 操作来显示给定子系统配置的描述,其中包括是否需要资源,是否有属性替换,等等:
/subsystem=datasources:read-resource-description(recursive=true)
/subsystem=datasources:read-resource-description(recursive=true)
更新系统设置
以下命令使用 write-attribute 操作来禁用示例数据源:
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
启动服务器
在受管域中运行时,使用以下命令启动和停止服务器:
/host=HOST_NAME/server-config=server-one:start
/host=HOST_NAME/server-config=server-one:start
1.3.5. 管理控制台 复制链接链接已复制到粘贴板!
管理控制台是用于 JBoss EAP 的基于 Web 的管理工具。
使用管理控制台启动和停止服务器、部署和删除应用程序、调优系统设置,并对服务器配置进行持久性修改。当用户进行需要重启或重新加载服务器的任何更改时,管理控制台还可以执行管理任务,并发出实时通知。
在受管域中,同一域中的服务器实例和服务器组通过域控制器的管理控制台集中管理。
对于运行在本地主机上使用默认管理端口的 JBoss EAP 实例,您可以通过 Web 浏览器访问管理控制台 http://localhost:9990/console/index.html。您必须使用具有访问管理控制台权限的用户角色进行身份验证。
管理控制台提供下列选项卡,用于浏览和管理 JBoss EAP 单机服务器或受管域。
- Home
- 了解如何完成几个常见配置和管理任务。参加导览,熟悉 JBoss EAP 管理控制台。
- Deployments
- 添加、移除和启用部署。在受管域中,将部署分配到服务器组。
- 配置
- 配置可用的子系统,提供 Web 服务、消息传递或高可用性等功能。在受管域中,管理包含不同子系统配置的配置文件。
- Runtime
- 查看运行时信息,如服务器状态、JVM 使用量和服务器日志。在受管域中,管理您的主机、服务器组和服务器。
- Patching
- 将补丁应用到您的 JBoss EAP 实例。
- Access control
- 在使用基于角色的访问控制时,将角色分配给用户和组。
1.3.5.1. 更新管理控制台中的资源属性 复制链接链接已复制到粘贴板!
如果您有所需的权限,您可以在管理控制台中编辑资源属性。
先决条件
- JBoss EAP 正在运行。
- 您有修改所选资源的适当权限。
- 您已创建了用户。
流程
- 登录到管理控制台。对于在默认端口中运行的本地服务器,您可以访问管理控制台 http://localhost:9990/console/index.html。
- 进入您要修改的资源的管理控制台的适当部分。
- 点 Edit。
进行必要的更改。
必填字段标有星号(*)。您可以通过单击 Help 来查看属性描述。
注意根据属性类型,输入字段可以是文本字段、ON/OFF 字段或下拉菜单。在某些文本字段中,当您输入时,配置中其他位置的值可能会显示为建议。
- 点击 Save。
如有必要,重新加载服务器以使更改生效。
当您进行更改需要重新加载才能生效时,会打开弹出窗口。要重新加载单机服务器,请单击弹出窗口中的 Reload。要在受管域中重新加载服务器,请单击 Topology,选择适当的服务器,然后从下拉列表中选择 Reload。
要查看您执行的最新配置操作的历史记录,请点通知图标。
1.3.5.2. 启用或禁用管理控制台 复制链接链接已复制到粘贴板!
您可以通过设置 /core-service=management/management-interface=http-interface 资源的 console-enabled 布尔值属性来启用或禁用管理控制台。对于域模式的 master 主机,请使用 /host=master/core-service=management/management-interface=http-interface。
启用或禁用管理控制台后,您必须重新启动或重新加载 JBoss EAP 实例。
启用管理控制台示例
/core-service=management/management-interface=http-interface:write-attribute(name=console-enabled,value=true)
/core-service=management/management-interface=http-interface:write-attribute(name=console-enabled,value=true)
禁用管理控制台示例
/core-service=management/management-interface=http-interface:write-attribute(name=console-enabled,value=false)
/core-service=management/management-interface=http-interface:write-attribute(name=console-enabled,value=false)
1.3.5.3. 更改管理控制台的语言 复制链接链接已复制到粘贴板!
默认情况下,管理控制台的语言设置是英语。您可以选择使用以下语言之一:
- 德语(de)
- 简体中文(zh-Hans)
- 巴西葡萄牙语(pt-BR)
- 法语(fr)
- 西班牙语(es)
- 日语(ja)
前提条件
- JBoss EAP 正在运行。
- 您已创建了用户。
流程
- 登录到管理控制台。对于在默认端口中运行的本地服务器,您可以访问管理控制台 http://localhost:9990/console/index.html。
- 单击 Settings。
- 从 Locale 列表中选择所需的语言。
- 点击 Save。确认框会通知您需要重新载入应用程序。
- 单击 Yes 。系统会自动刷新您的 Web 浏览器以使用所选区域设置。
1.3.5.4. 自定义管理控制台标题 复制链接链接已复制到粘贴板!
您可以自定义管理控制台标题,以便快速轻松地识别每个 JBoss EAP 实例。
前提条件
- JBoss EAP 正在运行。
- 您已创建了用户。
流程
- 登录到管理控制台。对于在默认端口中运行的本地服务器,您可以访问管理控制台 http://localhost:9990/console/index.html。
- 单击 Settings,再修改 Title 字段中的标题。
点击 Save。
确认框会通知您您必须重新加载管理控制台。
单击 Yes 。
系统会自动刷新您的 Web 浏览器,新标题会显示在标签页标头中。
1.3.6. 独立服务器配置文件 复制链接链接已复制到粘贴板!
独立配置文件位于 EAP_HOME/standalone/configuration/ 目录中。对于五个预定义的配置集(default, ha, full, full-ha, load-balancer),每个都有单独的文件。以下是启动 JBoss EAP 时可以使用管理 CLI 进行修改的示例配置文件。
| 配置文件 | 用途 |
|---|---|
|
| 此独立配置文件是 JBoss EAP 启动单机服务器时使用的默认配置。此配置对应于 Jakarta EE Web 和 Core Profiles,并包含有关服务器的所有信息,包括子系统、网络、部署、套接字绑定和其他可配置的详细信息。此配置不提供消息传递或高可用性所需的子系统。 |
|
|
此单机配置文件包含所有默认子系统,并添加 |
|
|
此单机配置文件包含所有默认子系统,并添加 |
|
| 此独立配置文件包括对每一种可能子系统的支持,包括消息传递和高可用性方面的支持。 |
|
| 此单机配置文件包含使用内置 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.7. 受管域配置文件 复制链接链接已复制到粘贴板!
受管域配置文件位于 EAP_HOME/domain/configuration/ 目录中。以下是启动 JBoss EAP 时可以使用管理 CLI 进行修改的示例配置文件。
| 配置文件 | 用途 |
|---|---|
|
| 这是受管域的主配置文件。只有域 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.8. 备份配置数据 复制链接链接已复制到粘贴板!
要恢复您的 JBoss EAP 服务器配置,您必须在以下位置备份数据:
EAP_HOME/standalone/configuration/- 备份整个目录,以保存单机服务器的用户数据、服务器配置和日志记录设置。
_EAP_HOME/standalone/data- 为在 data/content 目录中限制的受管部署备份数据。
EAP_HOME/standalone/deployments- 备份独立服务器的部署。
EAP_HOME/domain/configuration/- 备份整个目录,以保存用户和配置文件数据、域和主机配置,以及受管域的日志记录设置。
EAP_HOME/domain/data- 备份 data/content 目录中限制的受管域和部署的数据。
EAP_HOME/modules/- 备份任何自定义模块。
EAP_HOME/welcome-content/- 备份任何自定义欢迎内容。
EAP_HOME/bin/- 备份任何自定义脚本或启动配置文件。
1.3.9. 配置文件快照 复制链接链接已复制到粘贴板!
为了协助服务器维护和管理,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)
1.3.10. 使用快照启动服务器 复制链接链接已复制到粘贴板!
您可以使用快照或自动保存的配置版本来启动服务器。
先决条件
- 您已安装了 JBoss EAP。
- 您已生成了一个配置文件的快照。
流程
-
进入
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 和 --domain-config=<config> 参数来指定配置文件。
1.3.11. 属性替换 复制链接链接已复制到粘贴板!
您可以在 JBoss EAP 中使用表达式来定义可替换属性,以替换配置中的文字值。
在 standalone*.xml 或 domain.xml 配置文件中使用属性替换,将属性替换为系统属性中找到的值。系统属性定义在 EAP 配置文件 xml 文件中,也可以在命令行终端中输入 -D 命令来定义。
要确定给定子系统中是否允许属性替换,请使用以下命令显示子系统配置的描述:
/subsystem=datasources:read-resource-description(recursive=true)
/subsystem=datasources:read-resource-description(recursive=true)
如果 expressions-allowed 属性被设为 true,则允许属性替换。
表达式的格式为 ${PARAMETER:DEFAULT_VALUE}。如果设置了指定参数,则将使用参数的值。否则,将使用提供的默认值。
解析表达式支持的源是系统属性和环境变量。使用环境变量解析表达式时,请使用 ${env.LANG} 格式。
来自 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
对于部署,源可以是部署存档中的 META-INF/jboss.properties 文件中的属性。对于支持子部署的部署类型,如果属性文件位于外部部署中,则解析范围仅限于所有子部署,如 EAR。如果属性文件在子部署中,则解析的范围仅限于该子部署。
1.3.12. 嵌套表达式 复制链接链接已复制到粘贴板!
您可以嵌套表达式,它允许更高级地使用表达式来代替固定值。
嵌套表达式的格式类似于普通表达式的格式,但一个表达式被嵌入在另一个表达式中,例如:
${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}
${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}
JBoss EAP 会递归评估嵌套表达式,因此首先评估 inner 表达式,然后评估 outer 表达式。表达式也可以是递归的,其中表达式被解析为另一个表达式,其然后再被解析。允许表达式的任何位置都允许嵌套表达式,但管理 CLI 命令除外。
例如,如果数据源定义密码被屏蔽,您可以使用嵌套的表达式。数据源的配置可能包含以下行:
<password>${VAULT::ds_ExampleDS::password::1}</password>
<password>${VAULT::ds_ExampleDS::password::1}</password>
系统属性(datasource_name)使用嵌套表达式替换了 ds_ExampleDS 的值。以下行是数据源的示例配置:
<password>${VAULT::${datasource_name}::password::1}</password>
<password>${VAULT::${datasource_name}::password::1}</password>
JBoss EAP 首先评估表达式 ${datasource_name},然后将其输入到更大的表达式并评估生成的表达式。此配置的优点在于数据源的名称是从固定配置中提取的。
1.3.13. 基于描述符的属性替换 复制链接链接已复制到粘贴板!
部署基于描述符的属性替换根据描述符替换属性,以便您可以删除应用程序和构建链中有关环境的假设。
特定环境的配置可以在部署描述符中指定,而不是注释或构建系统脚本。您可以在文件中提供配置,或者作为参数在命令行中提供。
应用程序配置(如数据源连接参数)通常会因开发、测试和生产环境而异。构建系统脚本有时可以容纳这种差异,因为 Jakarta EE 规范不包含将这些配置外部化的方法。借助 JBoss EAP,您可以使用基于描述符的属性替换在外部管理配置。
spec-descriptor-property-replacement 标志控制 Jakarta EE 描述符替换,JBoss EAP 默认 禁用 它。启用后,您可以在以下部署描述符中替换属性:
-
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)
jboss-descriptor-property-replacement 标志控制特定于 JBoss 的描述符替换,而 JBoss EAP 默认启用它。启用后,您可以在以下部署描述符中替换属性:
-
jboss-ejb3.xml -
jboss-app.xml -
jboss-web.xml -
jboss-permissions.xml -
*-jms.xml -
*-ds.xml
使用以下管理 CLI 命令,来在 JBoss EAP 特定描述符中启用或禁用属性替换:
/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)
/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)
注解-property-replacement 标志控制注释内的属性替换,它默认不启用。启用后,您可以替换应用程序类中注释属性中的属性。
使用以下管理 CLI 命令,来在注释中启用或禁用属性替换:
/subsystem=ee:write-attribute(name="annotation-property-replacement",value=VALUE)
/subsystem=ee:write-attribute(name="annotation-property-replacement",value=VALUE)