2014年8月9日星期六

EAP_019:使用domain方式管理多个EAP Server

运行环境:JBoss  EAP 6.3.0

使用domain方式的目的是将多台服务器组成一个服务器组(Server Group),并为一个服务器组内的多台主机(Host)提供:
(1)单点集中配置(通过一个域控制器,即Domain Controller,实现组内主机的统一配置)。
(2)单点统一部署,通过域控制器将项目一次部署至组内全部主机。
在没有domain方式时,要想让多台服务器或几组服务器保持统一的配置,一个一个分别的去手工维护,是非常麻烦的事情。

实验环境:两台电脑,IP分别为 192.168.0.100和192.168.0.105 ,分别运行JBoss EAP 6.3.0,并组成一个服务器组(Server Group)。
其中,192.168.0.100作为Domain Controller,命名为“master”;192.168.0.105 作为 Host Controller,命名为“slave”。
注意,master/slave只是为了区别这两台机器,并不是一主一从的含义,实际配置中,可以有多台Host Controller。

1. 在Domain Controller 上的配置(192.168.0.100)
(1)添加名为slave的管理员账号, 这个账号是为Host Controller(192.168.0.105)添加的,是为了Host Controller和Domain Controller之间的通信。

 ./add-user.sh
你要添加哪个类型?
 a) 管理型用户 (mgmt-users.properties)
 b) 应用型用户 (application-users.properties)
(a):

输入要添加的新用户的细节。
使用从现有属性文件发现的区 'ManagementRealm'。
用户名 (slave) :   
下面列出了对密码的要求。要修改这些限制,请编辑 add-user.properties 配置文件。
 - 密码不能为下列限制值之一 {root, admin, administrator}
 - 密码必须至少包含 8 字符, 1 个字母, 1 个数字, 1 非字母/数字字符
 - 密码必须和用户名不同。
密码 :
重新输入密码 :
你希望这个用户属于哪些组?(请输入一个用逗号隔开的列表,或者留空表示没有)[  ]:
将要添加域 'slave' 的用户 'ManagementRealm'
这是正确的吗?  yes/No? yes
添加用户 'slave' 至 '/Users/maping/Redhat/Eap/jboss-eap-6.3-domain-controller/standalone/configuration/mgmt-users.properties'
添加用户 'slave' 至 '/Users/maping/Redhat/Eap/jboss-eap-6.3-domain-controller/domain/configuration/mgmt-users.properties'
添加属于组 slave 的用户 '' 到文件 '/Users/maping/Redhat/Eap/jboss-eap-6.3-domain-controller/standalone/configuration/mgmt-groups.properties'
添加属于组 slave 的用户 '' 到文件 '/Users/maping/Redhat/Eap/jboss-eap-6.3-domain-controller/domain/configuration/mgmt-groups.properties'
这个新用户将用于 AS 进程来连接另外一个 AS 进程(如从域控制器)?
 例如,用于连接到主控制器的从主机控制器、用于服务器和服务器间的 EJB 调用的远程连接。
yes/no? yes
要表示这个用户,在 server-identities 定义 <secret value="d2VsY29tZUAx" /> 里添加下列内容。

(2)启动Domain Controller
./domain.sh -b 192.168.0.100 -bmanagement=192.168.0.100

2. 在Host Controller 上的配置(192.168.0.105)
(1)修改host.xml,修改host name 为 slave
这个名字必须和在Domain Controller中创建的管理员账户名称一致,否则认证通不过。
 <host name="slave" xmlns="urn:jboss:domain:1.6">
(2)修改host.xml,在ManagementRealm security-realm中增加server-identites
注意,secret value就是在Domain Controller中创建的slave管理员账户的加密口令。
<security-realm name="ManagementRealm">
             <server-identities>
                   <secret value="d2VsY29tZUAx" />
             </server-identities>
                <authentication>
                    <local default-user="$local" skip-group-loading="true" />
                    <properties path="mgmt-users.properties" relative-to="jboss.domain.config.dir"/>
                </authentication>
                <authorization map-groups-to-roles="false">
                    <properties path="mgmt-groups.properties" relative-to="jboss.domain.config.dir"/>
                </authorization>
            </security-realm>
(3)修改host.xml,修改后的domain-controller如下:
 <domain-controller>
       <!-- Alternative remote domain controller configuration with a host and port -->
        <remote host="${jboss.domain.master.address}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/>
    </domain-controller>
 (4)修改host.xml,为了避免名称冲突,把server name都改一遍,修改后的servers如下:
<servers>
        <server name="server-four" group="main-server-group">
            <!-- Remote JPDA debugging for a specific server
            <jvm name="default">
              <jvm-options>
                <option value="-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"/>
              </jvm-options>
           </jvm>
           -->
        </server>
        <server name="server-five" group="main-server-group" auto-start="true">
            <!-- server-two avoids port conflicts by incrementing the ports in
                 the default socket-group declared in the server-group -->
            <socket-bindings port-offset="150"/>
        </server>
        <server name="server-six" group="other-server-group" auto-start="false">
            <!-- server-three avoids port conflicts by incrementing the ports in
                 the default socket-group declared in the server-group -->
            <socket-bindings port-offset="250"/>
        </server>
</servers>
(5)启动Host Controller
./domain.sh -Djboss.domain.master.address=192.168.0.100

3. 确认Host Controller加入了Domain Controller
(1)在Domain Controller中的日志中,看到如下信息:
[Host Controller] 10:40:30,852 INFO  [org.jboss.as.domain] (Host Controller Service Threads - 30) JBAS010918: 已注册的远程从主机 "slave", JBoss EAP 6.3.0.GA (AS 7.4.0.Final-redhat-19)
(2)访问 http://192.168.0.100:9990/console,来回切换Host,能够分别看到主机master和主机slave中的server信息。

4. domain方式原理图


参考文献:
1. http://blog.csdn.net/kylinsoong/article/details/12683745
2. http://wenku.baidu.com/link?url=wOf_twvNLN6xluIDNXIeXYGk_SOkko1bJp5kfBrcBqrg8kD1AQS2K5z29MXZrZTxms8DqIfEfGoZYPRsEIzK5scLDp6ZcNBthzxA_8vhfpe
3. http://blog.csdn.net/lzzyok/article/details/7895092
4. https://access.redhat.com/solutions/218053
5. https://docs.jboss.org/author/display/AS72/Operating+modes
6. http://jbosscn.iteye.com/blog/1045347

没有评论: