3.5. 配置数据
3.5.1. 独立服务器配置文件
独立配置文件位于 EAP_HOME/standalone/configuration/
目录中。每个四个预定义配置文件都存在单独的文件(默认为、ha、full、full)。
配置文件 | 用途 |
---|---|
| 此独立配置文件是启动单机服务器时使用的默认配置。它包含有关服务器的所有信息,包括子系统、网络、部署、套接字绑定和其他可配置的详细信息。它不提供消息传递或高可用性所需的子系统。 |
|
此单机配置文件包含所有默认子系统,并添加 |
|
此单机配置文件包含所有默认子系统,并添加 |
| 此独立配置文件包括对每一种可能子系统的支持,包括消息传递和高可用性方面的支持。 |
默认情况下,将 JBoss EAP 作为单机服务器启动使用 standalone.xml
文件。若要使用其他配置启动 JBoss EAP,可使用 --server-config
参数:例如,
$ EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml
3.5.2. 受管域配置文件
受管域配置文件位于 EAP_HOME/domain/configuration/
目录中。
配置文件 | 用途 |
---|---|
| 这是受管域的主配置文件。只有域 master 会读取此文件。此文件包含所有配置集的配置(默认为、ha、full、full-ha)。 |
|
此文件包含特定于受管域中物理主机的配置详细信息,如网络接口、套接字绑定、主机名称和其他特定于主机的详细信息。 |
| 此文件仅包含将服务器作为主域控制器运行所需的配置详细信息。 |
| 此文件仅包含作为受管域主机控制器运行服务器所需的配置详细信息。 |
默认情况下,在受管域中启动 JBoss EAP 将使用 host.xml
文件。若要使用其他配置启动 JBoss EAP,可使用 --host-config
参数:例如,
$ EAP_HOME/bin/domain.sh --host-config=host-master.xml
3.5.3. 备份配置数据
为了稍后恢复 JBoss EAP 服务器配置,应备份以下位置中的项目:
EAP_HOME/standalone/configuration/
- 备份整个目录,以保存单机服务器的用户数据、服务器配置和日志记录设置。
EAP_HOME/domain/configuration/
- 备份整个目录,以保存用户和配置文件数据、域和主机配置,以及受管域的日志记录设置。
EAP_HOME/modules/
- 备份任何自定义模块。
EAP_HOME/welcome-content/
- 备份任何自定义欢迎内容。
EAP_HOME/bin/
- 备份任何自定义脚本或启动配置文件。
3.5.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" }
列出快照
使用管理 CLI 列出已执行的所有快照。
:list-snapshots { "outcome" => "success", "result" => { "directory" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot", "names" => [ "20151022-133109702standalone.xml", "20151022-132715958standalone.xml" ] } }
删除快照
使用管理 CLI 删除快照。
: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
在受管域中运行时,请使用 --host-config
参数来指定配置文件。
3.5.5. 查看配置更改
JBoss EAP 7 提供了跟踪对正在运行的系统所做的配置更改的功能。这样,管理员可以查看其他授权用户所做的配置更改历史记录。
更改存储在内存中,在服务器重新启动之间不会保留。此功能不是 管理审计日志记录 的替代。
要启用 跟踪配置更改,请使用以下管理 CLI 命令。您可以使用 max-history
属性指定要存储的条目数量。
/core-service=management/service=configuration-changes:add(max-history=10)
要查看最新的配置更改列表,请使用以下管理 CLI 命令:
/core-service=management/service=configuration-changes:list-changes
这将列出所做的每个配置更改,包括日期、源、结果和操作详情。例如,以下 list-changes
命令的输出显示了配置更改,最近显示最先显示。
{ "outcome" => "success", "result" => [ { "operation-date" => "2016-02-12T18:37:00.354Z", "access-mechanism" => "NATIVE", "remote-address" => "127.0.0.1/127.0.0.1", "outcome" => "success", "operations" => [{ "address" => [], "operation" => "reload", "operation-headers" => { "caller-type" => "user", "access-mechanism" => "NATIVE" } }] }, { "operation-date" => "2016-02-12T18:34:16.859Z", "access-mechanism" => "NATIVE", "remote-address" => "127.0.0.1/127.0.0.1", "outcome" => "success", "operations" => [{ "address" => [ ("subsystem" => "datasources"), ("data-source" => "ExampleDS") ], "operation" => "write-attribute", "name" => "enabled", "value" => false, "operation-headers" => { "caller-type" => "user", "access-mechanism" => "NATIVE" } }] }, { "operation-date" => "2016-02-12T18:24:11.670Z", "access-mechanism" => "HTTP", "remote-address" => "127.0.0.1/127.0.0.1", "outcome" => "success", "operations" => [{ "operation" => "remove", "address" => [ ("subsystem" => "messaging-activemq"), ("server" => "default"), ("jms-queue" => "ExpiryQueue") ], "operation-headers" => {"access-mechanism" => "HTTP"} }] } ] }
本例列出了影响配置执行的三个操作的详情:
- 从管理 CLI 重新加载服务器。
-
从管理 CLI 禁用
ExampleDS
数据源。 -
从管理控制台中删除
ExpiryQueue
队列。
3.5.6. 属性替换
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>
将 EAP 启动为单机服务器时,可以使用以下命令设置 jboss.bind.address
参数:
$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
嵌套表达式
表达式可以嵌套,允许更高级地使用表达式来代替固定值。嵌套表达式的格式类似于普通表达式的格式,但一个表达式被嵌入在另一个表达式中,例如:
${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}
嵌套表达式是递归评估的,因此首先评估内嵌表达式,然后评估外部表达式。表达式也可能是递归的,其中一个表达式解析为另外一个表达式,然后解析。允许表达式的任何位置都允许嵌套表达式,但管理 CLI 命令除外。
例如,如果数据源定义中使用的密码被屏蔽,则可以使用嵌套表达式。数据源的配置可能包含以下行:
<password>${VAULT::ds_ExampleDS::password::1}</password>
ds_ExampleDS
的值可以替换为使用嵌套表达式的系统属性(datasource_name
)。数据源的配置可以改为有以下行:
<password>${VAULT::${datasource_name}::password::1}</password>
JBoss EAP 首先评估表达式 ${datasource_name}
,然后将其输入到更大的表达式并评估生成的表达式。此配置的优点在于数据源的名称是从固定配置中提取的。
基于描述符的特征替换
应用程序配置(如数据源连接参数)通常会因开发、测试和生产环境而异。构建系统脚本有时可以容纳这种差异,因为 Java EE 规格不包含将这些配置外部化的方法。借助 JBoss EAP,您可以使用基于描述符的属性替换在外部管理配置。
基于描述符的属性替换基于描述符的属性,允许您从应用和构建链中删除对环境相关的假设。特定环境的配置可以在部署描述符中指定,而不是注释或构建系统脚本。您可以在文件中提供配置,或者作为参数在命令行中提供。
ee
子系统中有几个标记控制是否应用属性替换。
JBoss 特定的描述符替换由 jboss-descriptor-property-replacement
标志控制,默认情况下被启用。启用后,可以在以下部署描述符中替换属性:
-
jboss-ejb3.xml
-
jboss-app.xml
-
jboss-web.xml
-
*-jms.xml
-
*-ds.xml
以下管理 CLI 命令可用于启用或禁用特定于 JBoss 的描述符中的属性替换:
/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)
Java EE 描述符替换由 spec-descriptor-property-replacement
标志控制,默认是禁用的。启用后,可以在以下部署描述符中替换属性:
-
ejb-jar.xml
-
persistence.xml
-
application.xml
-
web.xml
以下管理 CLI 命令可用于在 Java EE 描述符中启用或禁用属性替换:
/subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)