JBOSS集群域部署配置6.4

以6.4为例:

                                                    jboss eap 6.4 (Domain) 模式配置

 

     jboss提供了二种运行模式:standalone(独立运行模式)domain(域模式),日常开发中,使用standalone模式足已;但生产部署时,一个app,往往是部署在

jboss集群环境中的,如果所有jboss server均采用standalone模式,会给运维带来极大的工作量,需要每台jboss server上逐一部署/更新,显然不适合。

domain模式正是为了解决这一问题,该模式下,所有jboss server可以划分成不同的group(注:这里的jboss server并不一定要对应某台物理机或虚拟机,一个os

,可以同时run多个jboss server实例,所以本文中的jboss server均指某个运行中的jboss server instance),每个group中可以包含多个jboss server,所有这些

jboss server中,可以指定一台做为域控制器(domain controller),俗称master server,其它jboss server均为Home Controller(俗称slave server)

master上可以控制所有jboss server,并监控其运行情况,部署应用时,一个war包,只需要部署到group上,该group中的所有jboss server即会同步自动部署

 

 

下面是配置步骤:

 

环境:

    linux  jboss eap 6.4

机器资源:

    172.21.129.181 (master)172.21.129.57(slave57)172.21.129.128(slave128) - 即:181为主机,57128这二台机器为slave

                                          

一、master server配置

 

 

 

1.1 进入 "jboss_home\domain\configuration",打开host.xml

 

 

 

    <interfaces>

       <interface name="management">

             <inet-address value="${jboss.bind.address.management:172.21.129.181}"/>

        </interface>

        <interface name="public">

           <inet-address value="${jboss.bind.address:172.21.129.181}"/>

        </interface>

        <interface name="unsecure">

            <!-- Used for IIOP sockets in the standard configuration.

                 To secure JacORB you need to setup SSL -->

             <inet-address value="${jboss.bind.address.unsecure:172.21.129.181}"/>

        </interface>

    </interfaces>

 

 

 

 

 将所有127.0.0.1的地址,换成master server对应的真实IP(否则,无法从远程通过浏览器,访问jboss 管理控制台)

 

 

1.2 domain模式启动master server ---sh domain.sh

 

1.3 进入master jboss 控制台

http://172.21.129.181:9990/console/

 

 

首次进入,可能会提示没有创建管理员帐号,创建管理员

 

步骤如下

 

因为我们还未创建任何管理帐号,所以jboss提示我们先运行add-user.sh,添加用户,先回到jboss 中,运行 bin/add-user.sh 

 

 

添加 Management User,然后输入用户名、密码(密码有一定要求,不能太简单),

用户名:Admin 密码:Admin,1234

 

参考下图:

 

后面一路yes+回车即可,最后有一个加密字符串 (QW1iLDEyMzQ=) ,最好记下来,如果jboss上的某些应用要求安全认证,这个值会用上

1.4 创建groupserver

进入控制台后,可以看到jboss已经默认创建了一些groupserver,先把他们全干掉吧(通常,我们会创建自己的group/server)

参考下面这个界面,创建一个组 ASP-server-group - 1

tips: 创建group时,profile建议选择full-haha (以后会讲如何做jboss集群配置,负载均衡、智能容错时,需要使用ha系列的profile)

重要提示:同一个局域网里如果有多个master,如果这些master上的group名称有重复,则只有第一master能启动成功后,后面的master启动时会报错,建议每个master上的

group命名时,加上masterIP,比如group+IP地址,这样肯定不会重复!

 

参考下面的图,在master server上创建1server

注:创建server时,有一个Port Offset选项(参考下图)

解释一下,默认情况下server的端口是8080Port Offset指端口偏移量,如果按上图配置,Port Offset指定为n,则表示该server创建后,

对应的端口为8080+n,即808n端口 (可以用http://172.21.129.181:808n / 来访问)

 

tips: 如果一个server已经处于started状态,是无法remove的,可以先到下面的界面,把该server stop掉,然后再回这个界面,就可以Remove

二、Slave Server配置

 

2.1 jboss eap 6.4解压到172.21.129.57这台slave机器上

2.2 进入jboss_home\domain\configuration,将原来的host.xml改名备份,然后再将host-slave.xml复制一份,并改名为host.xml

2.3 修改host.xml

 

a)

<management-interfaces>

 <native-interface security-realm="ManagementRealm">

     <socket interface="management" port="${jboss.management.native.port:9099}"/>

 </native-interface>

</management-interfaces>

 

这里的9999端口,改成其它不使用的端口(比如:9099),否则slave server上的9999端口,与master server上的管理端口冲突,最后启动时,会报错

 

b)

 

<domain-controller>

  <remote host="${jboss.domain.master.address:172.21.129.181}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/>

</domain-controller>

2行,指定master serverIP(本文中为172.21.129.181),这样slave在启动时,才知道去连哪一台master

 

 

C)

<interfaces>

 <interface name="management">

     <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>

 </interface>

 <interface name="public">

    <inet-address value="${jboss.bind.address:0.0.0.0}"/>

 </interface>

 <interface name="unsecure">

     <!-- Used for IIOP sockets in the standard configuration.

          To secure JacORB you need to setup SSL -->

     <inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/>

 </interface>

</interfaces>

 

原来的127.0.0.1,改成slave server的真实IP0.0.0.0,否则slave上的应用,只能在slave本机访问

 

 

d)

 

<servers>

    <server name="APS-server-slave2" group="APS-server-group-1" auto-start="true">

        <socket-bindings socket-binding-group="full-ha-sockets" port-offset="0"/>

    </server>

</servers>

 

手动在slave上创建二个server,并加入到APS-server-group-1 (注:group的值,必须是在master server上创建过的,否则启动时,slave上的server无法正常加入到master相关的group)

 

 

 

e)

<host name="slave57" xmlns="urn:jboss:domain:1.6">

 

最开头的host节点上,加一个name="xxx"的属性(本文中为slave57),这个name值最终会显示在master serverjboss 控制台中,建议起一个容易识别的名称

 

 

 

三、安全认证配置

 

 

3.1 回到master server上,添加一个名为slave57的管理员帐号,并记住最后生成的<secret value="xxxx" />的字符串(xxx为密码经过base64处理后的内容)

 

3.2 回到slave57这台server中,再次编辑host.xml,将<secret value="xxxx" />的内容替换

 

 

<server-identities>

   <!-- Replace this with either a base64 password of your own, or use a vault with a vault expression -->

   <!--<secret value="c2xhdmVfdXNlcl9wYXNzd29yZA=="/>-->

   <secret value="c2xhdmU1Ny4xMjM=" />

</server-identities>

中的<secret value=... />部分

 

 

解释:slave启动时,需要连接注册到masterjboss中,连接过程需要安全认证,这里的secret相当于认证的钥匙,而认证的用户名即为:正在连接的slave机器上jbosshost.xml<host name='xxx'>这个节点中的name值,所以4.1需要在master中创建一个名为“slave57”的管理员

 

3.3   另一台slave服务器,类似的做法,host.xml<host>节点的nameslave128

 

3.4 依次以domain模式启动masterslave57  slave128   上的jboss

 


异常处理:



如果出现命令行关闭JBOSS进程自动杀死情况,请按照图下在在jboss-eap-6.4
 bin目录下创建start.sh启动,内容如下:

猜你喜欢

转载自blog.csdn.net/weixin_41788754/article/details/79441805