8.3. 启动受管域
8.3.1. 启动受管域
可使用 JBoss EAP 提供的 domain.sh
或 domain.bat
脚本启动域控制器和主机控制器。有关所有可用启动脚本参数及其目的的完整列表,请使用 --help
参数或查看 服务器运行时参数 部分。
域控制器必须在域中任何服务器组中的任何从属服务器之前启动。首先启动域控制器,然后启动域中的任何其他关联的主机控制器。
启动域控制器
使用 host-master.xml
配置文件启动域控制器,该文件预配置了专用的域控制器。
$ EAP_HOME/bin/domain.sh --host-config=host-master.xml
根据您的域设置,您需要进行额外的配置来允许主机控制器连接。另请参阅以下示例域设置:
启动主机控制器
使用 host-slave.xml
配置文件启动主机控制器,该文件预配置了从属主机控制器。
$ EAP_HOME/bin/domain.sh --host-config=host-slave.xml
根据您的域设置,您需要进行额外的配置连接,而不与域控制器冲突。另请参阅以下示例域设置:
8.3.2. 配置域控制器
在使用 RPM 安装方法安装 JBoss EAP 时,不支持在同一计算机上配置多个域或主机控制器。
将主机配置为作为域控制器的 Act
如果在 <domain -controller> 声明中包含
。
<local
/> 元素,则主机被指定为域控制器
<domain-controller> <local/> </domain-controller>
用作域控制器的主机必须公开可由域中的其他主机访问的管理接口。不需要公开 HTTP (S)管理界面,但建议使用,因为它允许访问管理控制台。
<management-interfaces> <native-interface security-realm="ManagementRealm"> <socket interface="management" port="${jboss.management.native.port:9999}"/> </native-interface> <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true"> <socket interface="management" port="${jboss.management.http.port:9990}"/> </http-interface> </management-interfaces>
EAP_HOME/domain/configuration/host-master.xml
文件已预先配置了这些设置,以充当域控制器。
8.3.3. 配置主机控制器
在使用 RPM 安装方法安装 JBoss EAP 时,不支持在同一计算机上配置多个域或主机控制器。
连接到域控制器
必须为主机控制器提供连接域控制器的方法,以便它可以将自身注册到域。这在配置的 < domain-controller&
gt; 项中进行配置。
<domain-controller> <remote security-realm="ManagementRealm"> <discovery-options> <static-discovery name="primary" protocol="${jboss.domain.master.protocol:remote}" host="${jboss.domain.master.address}" port="${jboss.domain.master.port:9999}"/> </discovery-options> </remote> </domain-controller>
EAP_HOME/domain/configuration/host-slave.xml
文件已预先配置了这些设置,以连接到域控制器。启动主机控制器时,您将需要提供 jboss.domain.master.address
属性。
$ EAP_HOME/bin/domain.sh --host-config=host-slave.xml -Djboss.domain.master.address=IP_ADDRESS
有关域控制器发现的更多信息,请参阅 域控制器发现和故障切换 部分。
根据您的域设置,您可能还需要为主机控制器提供身份验证,供域控制器进行身份验证。如需了解生成具有 secret 值的 管理用户以及使用该值更新主机控制器配置的详细信息,请参阅在两个机器上设置受管域。
8.3.3.1. 配置主机的名称
在受管域中运行的每个主机必须具有唯一的主机名。为了简化管理并允许在多个主机上使用相同的主机配置文件,服务器使用以下优先级来确定主机名:
-
如果设置,
host.xml
配置文件中的 host 元素 name 属性。 -
jboss.host.name
系统属性的值。 -
遵循
jboss.qualified.host
系统属性中最终句点(.)字符的值,如果没有最终句点(.
name.
)字符,则取整值。 -
遵循基于 POSIX 的操作系统的
HOSTNAME
环境变量中的句点(.
)字符、Microsoft Windows 的COMPUTERNAME
环境变量或整个值(如果没有最终句点(.
)字符)。
主机控制器的名称在相关
配置文件的 host 元素中配置,例如:
host
.xml
<host xmlns="urn:jboss:domain:4.0" name="host1">
使用以下步骤使用管理 CLI 更新主机名。
启动 JBoss EAP 主机控制器。
$ EAP_HOME/bin/domain.sh --host-config=host-slave.xml
启动管理 CLI,连接到域控制器。
$ EAP_HOME/bin/jboss-cli.sh --connect --controller=DOMAIN_CONTROLLER_IP_ADDRESS
使用以下命令设置新的主机名:
/host=EXISTING_HOST_NAME:write-attribute(name=name,value=NEW_HOST_NAME)
这会修改
host-slave.xml
文件中的主机名属性,如下所示:<host name="NEW_HOST_NAME" xmlns="urn:jboss:domain:4.0">
重新加载主机控制器,以使更改生效。
reload --host=EXISTING_HOST_NAME
如果主机控制器未在配置文件中设置名称,您也可以在运行时传递主机名。
$ EAP_HOME/bin/domain.sh --host-config=host-slave.xml -Djboss.host.name=HOST_NAME
8.3.4. 域控制器发现和故障切换
在设置受管域时,必须为每个主机控制器配置与域控制器联系所需的信息。在 JBoss EAP 中,每个主机控制器都可配置多个选项来查找域控制器。主机控制器迭代选项列表,直到成功为止。
这允许主机控制器预先配置了备份域控制器的联系信息。如果主域控制器存在问题,则备份主机控制器可以提升到 master,允许主机控制器在提升新 master 后自动失败。
以下是如何使用多个选项配置主机控制器,以查找域控制器:
示例:具有多个域控制器选项的主机控制器
<domain-controller> <remote security-realm="ManagementRealm"> <discovery-options> <static-discovery name="primary" protocol="${jboss.domain.master.protocol:remote}" host="172.16.81.100" port="${jboss.domain.master.port:9999}"/> <static-discovery name="backup" protocol="${jboss.domain.master.protocol:remote}" host="172.16.81.101" port="${jboss.domain.master.port:9999}"/> </discovery-options> </remote> </domain-controller>
静态发现选项包括以下所需属性:
- name
- 此域控制器发现选项的名称。
- 主机
- 远程域控制器的主机名。
- port
- 远程域控制器的端口。
在上例中,第一个发现选项是成功的一个发现选项。第二个可用于故障转移。
如果主域控制器出现问题,可以通过 --backup
选项启动的主机控制器提升为充当域控制器。
使用 --backup
选项启动主机控制器将导致控制器维护域配置的本地副本。如果主机控制器重新配置为充当域控制器,则将使用此配置。
将主机控制器提升为域控制器
- 确保原始域控制器已停止。
- 使用管理 CLI 连接到属于新域控制器的主机控制器。
执行以下命令,将主机控制器配置为充当新的域控制器。
/host=HOST_NAME:write-local-domain-controller
执行以下命令,以重新加载主机控制器:
reload --host=HOST_NAME
此主机控制器现在将充当域控制器。