1. 程式人生 > >JBOSS叢集域部署配置6.4

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 ---shdomain.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啟動,內容如下: