第 10 章 嵌入服务器以进行离线配置
您可以在管理 CLI 进程中嵌入 JBoss EAP 单机服务器或主机控制器流程。这可让您配置服务器,而无需它在网络中可见。此功能的常见用途是服务器的初始配置,例如在服务器在线之前管理与安全相关的设置或避免端口冲突。
这种通过管理 CLI 对 JBoss EAP 安装进行直接的本地管理不需要基于套接字的连接。您可以通过与远程 JBoss EAP 服务器交互的方式将管理 CLI 与嵌入式服务器配合使用。所有可用于管理远程服务器的标准管理 CLI 命令都可用。
启动嵌入式单机服务器
您可以使用管理 CLI 在本地启动单机服务器,以修改独立配置,而无需启动附加进程或打开网络套接字。
以下过程将启动管理 CLI,启动嵌入的单机服务器,修改配置,然后停止嵌入的服务器。
启动管理 CLI。
$ EAP_HOME/bin/jboss-cli.sh
启动嵌入式单机服务器。
传递 在
--std-out=echo
参数中将标准输出打印到终端。embed-server --std-out=echo
执行所需的操作。
/socket-binding-group=standard-sockets/socket-binding=management-http:write-attribute(name=port,value=9991)
停止嵌入式服务器。
stop-embedded-server
这会停止嵌入的服务器,并返回到管理 CLI 会话。如果也想退出管理 CLI 会话,您可以使用
quit
命令。
指定服务器配置
默认情况下,嵌入式服务器将使用 standalone.xml
配置文件。您可以使用 --server-config
参数来指定要使用的不同配置文件。
embed-server --server-config=standalone-full-ha.xml
从仅限管理员模式开始
默认情况下,嵌入式服务器以 管理员模式
启动,它将启动与服务器管理相关的服务,但不启动其他服务或接受最终用户请求。这对于服务器的初始配置非常有用。
您可以通过将 --admin-only
参数设置为 false,以正常运行模式启动嵌入式服务器。
embed-server --admin-only=false
您还可以使用 reload
命令更改正在运行的模式。
reload --start-mode=normal
控制标准输出
您可以控制如何处理嵌入式服务器的标准输出。默认情况下,标准输出将被丢弃,但您可以在服务器日志中找到输出。您可以传递 --std-out=echo
,使服务器输出显示有管理 CLI 输出。
embed-server --std-out=echo
引导超时
默认情况下,si med-server
命令会无限期地阻止等待嵌入的服务器完全启动。您可以使用 --timeout
参数指定等待的时间(以秒为单位)。当嵌入式服务器到达可以通过 CLI 管理的点时,小于 1
的值将返回。
embed-server --timeout=30
从空白配置开始
启动嵌入的服务器时,您可以指定要以空配置开头。如果要使用管理 CLI 命令构建整个服务器配置,这非常有用。
embed-server --server-config=my-config.xml --empty-config
如果文件已存在,此命令将失败,这有助于避免意外删除配置文件。您可以通过传递 --remove-existing
参数来指定删除任何现有配置。
embed-server --server-config=my-config.xml --empty-config --remove-existing
启动嵌入式主机控制器
您可以使用管理 CLI 在本地启动主机控制器,以修改域和主机控制器配置,而无需启动其他进程或打开网络套接字。
嵌入式主机控制器不启动任何服务器。另外,启动嵌入式主机控制器时,您不能使用 --admin-only
参数。它始终会启动,就像它处于 仅限管理员
模式时一样。
以下过程将启动管理 CLI,启动嵌入式主机控制器,修改配置,然后停止嵌入的主机控制器。
启动管理 CLI。
$ EAP_HOME/bin/jboss-cli.sh
启动嵌入式主机控制器。
传递 在
--std-out=echo
参数中将标准输出打印到终端。embed-host-controller --std-out=echo
执行所需的操作。
/host=HOST_NAME:write-attribute(name=name,value=NEW_HOST_NAME)
停止嵌入式主机控制器。
stop-embedded-host-controller
指定主机控制器配置
默认情况下,嵌入式主机控制器将使用 domain.xml
作为域配置,host.xml
用于主机配置。您可以使用 --domain-config
和 --host-config
参数来指定要使用的不同配置文件。
embed-host-controller --domain-config=other-domain.xml --host-config=host-slave.xml
根据您使用的替代配置文件,您可能需要在启动管理 CLI 时设置某些属性。例如,
$ EAP_HOME/bin/jboss-cli.sh -Djboss.domain.master.address=127.0.0.1
控制标准输出
您可以控制如何处理嵌入式主机控制器的标准输出。默认情况下,标准输出将被丢弃,但您可以在主机控制器的日志中找到输出。您可以传递 --std-out=echo
,使主机控制器输出显示在管理 CLI 输出中。
embed-host-controller --std-out=echo
引导超时
默认情况下,in p-host-controller
命令会无限期地阻止等待嵌入的主机控制器完全启动。您可以使用 --timeout
参数指定等待的时间(以秒为单位)。当嵌入式主机控制器到达可以通过 CLI 管理的点时,值小于 1
时将返回。
embed-host-controller --timeout=30
使用管理 CLI 进行非修改类加载
使用 EAP_HOME/bin/jboss-cli.sh
脚本启动管理 CLI,使用模块化类加载环境。如果使用 EAP_HOME/bin/client/jboss-cli-client.jar
在非模块化类加载环境中运行管理 CLI,您将需要指定 root JBoss EAP 安装目录。
启动管理 CLI。
$ java -jar EAP_HOME/bin/client/jboss-cli-client.jar
启动嵌入的服务器,指定 root 安装目录。
embed-server --jboss-home=/path/to/EAP_HOME
注意若要嵌入主机控制器,可使用
embed-host-controller
命令。嵌入逻辑将为服务器设置适当的模块化类加载环境。模块类加载程序的模块路径将具有一个元素:
EAP_HOME/modules
。
无论您以哪种方式启动管理 CLI,嵌入式服务器都将在模块化类加载环境中运行。