天天看點

linux下jboss eap 6.3 域(Domain)模式配置

jboss eap 6.3 域(Domain)模式配置(開始之前先安裝jdk)

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即會同步自動部署。

下面是配置步驟:

環境:

    Centos6.5,jboss eap 6.3

機器資源:

    172.21.129.181 (master)、172.21.129.57(slave57)、172.21.129.128(slave128) - 即:181為主機,57、128這二台機器為slave

linux下jboss eap 6.3 域(Domain)模式配置

安裝GDK

$yum install java-1.6.0-openjdk-devel

$java –version

一、下載下傳安裝jboss eap 6.3 

目前jboss eap的最新版本是jboss-eap-6.3.0.zip ,下載下傳位址 https://www.jboss.org/products/eap/download/

下載下傳完成後,解壓到某個目錄即可 (下面用jboss_home代替jboss-eap-6.3.0根目錄)

建立新的使用者:或者,可以使用任何使用者名。然而,使用者名必須在指定的檔案jboss-as.conf。

$ adduser jboss   

更改安裝目錄的所有權:我們需要配置設定适當的所有權到安裝目錄為新建立的JBoss使用者發出指令:

$ chown -fR jboss.jboss /usr/local/jboss_home/

二、master server配置

2.1配置host.xml

   a、用 host-master.xml覆寫原來的host.xml

   host-master.xml(原host.xml預設配置,很全)    

   b、master模版,這個模版隻做domain.如果打算還運作server,需要增加下面内容: 

    jboss.bind.address ( host-master.xml沒有這個,需要從host.xml複制,如果沒有這個節點隻能做manager)

       <interface name="public">

    <inet-addressvalue="${jboss.bind.address:127.0.0.1}"/>

  </interface>

  <interface name="unsecure">

  <!-- Used for IIOPsockets in the standard configuration.To secure JacORB you need to setup SSL-->

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

  </interface>    

    servers 段預設在host-master.xml中也沒有需要從host.xml中複制。其中port-offset參數用來計算server監聽的端口。預設以8080開始

    <servers>

    <servername="server-one" group="main-server-group">

      <!-- Remote JPDA debugging for a specificserver

     <jvm name="default">

       <jvm-options>

      <optionvalue="-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"/>

      </jvm-options>

     </jvm>

     -->

    </server>

     <server name="server-two"group="main-server-group" auto-start="true">

   <!-- server-twoavoids port conflicts by incrementing the ports in the default socket-groupdeclared in the server-group -->

   <socket-bindingsport-offset="150"/>

  </server>

</servers>    

  c、修改<interfaces>,把127位址修改為master的實際位址。(否則,無法從遠端通過浏覽器,通路jboss 管理控制台)

  d、修改jvms 可選。根據機器配置與應用情況

  e、修改servers 可選,從控制台看,應該可以從界面增加。

     另外不同host controler下面的的server即使同名也不會沖突。

2.2 以domain模式啟動master server

 jboss_home\bin\domain.sh

2.3 進入master jboss 控制台

http://172.21.129.181:9990/console/

首次進入,可能會提示沒有建立管理者帳号,

$cd jboss_home/bin

$./add-user.sh

添加 Management User,然後輸入使用者名、密碼(密碼有一定要求,不能太簡單),參考下圖:當詢問使用者屬于哪個組是可以為建立的jboss用的組,也可以直接回車。

linux下jboss eap 6.3 域(Domain)模式配置

後面一路yes+回車即可,最後有一個加密字元串,最好記下來,如果jboss上的某些應用要求安全認證,這個值會用上

linux下jboss eap 6.3 域(Domain)模式配置

2.4 domain配置伺服器

配置domain.xml

   這個檔案看懂就行,預設就可以運作。 

編輯master的檔案domainxml “domain/configuration/domain.xml”檔案

<subsystemxmlns="urn:jboss:domain:messaging:1.4">

  <hornetq-server>

<cluster-password>

${jboss.messaging.cluster.password:CHANGEME!!}

</cluster-password>

<persistence-enabled>true</persistence-enabled>

<journal-type>NIO</journal-type>

<journal-min-files>2</journal-min-files>

改為

Admin_1234</cluster-password>

其中的admin_1234為用add-user.sh建立mgmt-users.properties使用者時的密碼,用它來進行認證。

slave也這樣修改。

2.5 建立group、server

進入控制台後,可以看到jboss已經預設建立了一些group及server,先把他們全幹掉吧(通常,我們會建立自己的group/server)

參考下面這個界面,建立二個組my-group-1,my-group-2

linux下jboss eap 6.3 域(Domain)模式配置

tips: 建立group時,profile建議選擇full-ha,socket-binding-group選擇full-ha-sockets (以後會講如何做jboss叢集配置,負載均衡、智能容錯時,需要使用full-ha profile)

參考下面的圖,在master server上建立4個server

linux下jboss eap 6.3 域(Domain)模式配置

注:建立server時,有一個Port Offset選項(參考下圖)

linux下jboss eap 6.3 域(Domain)模式配置

解釋一下,預設情況下server的端口是8080,Port Offset指端口偏移量,如果按上圖配置,Port Offset指定為5,則表示該server建立後,對應的端口為8080+5,即8085端口 (可以用http://172.21.129.181:8085/ 來通路)

tips: 如果一個server已經處于started狀态,是無法remove的,可以先到下面的界面,把該server stop掉,然後再回這個界面,就可以Remove了

linux下jboss eap 6.3 域(Domain)模式配置

三、Slave Server配置

3.1 将jboss eap 6.3解壓到172.21.129.57這台slave機器上

3.2 進入jboss_home\domain\configuration,将原來的host.xml改名備份,然後再将host-slave.xml複制一份,并改名為host.xml

3.3 修改host.xml

a)

1        <management-interfaces>

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

3                 <socketinterface="management" port="${jboss.management.native.port:9099}"/>

4            </native-interface>

5        </management-interfaces>

這裡的9999端口,改成其它不使用的端口(比如:9099),否則slave server上的9999端口,與master server上的管理端口沖突,最後啟動時,會報錯

b)

1     <domain-controller>

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

3     </domain-controller>

第2行,指定master server的IP(本文中為172.21.129.181),這樣slave在啟動時,才知道去連哪一台master

c)

 1     <interfaces>

 2         <interfacename="management">

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

 4         </interface>

 5         <interfacename="public">

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

 7         </interface>

 8         <interfacename="unsecure">

 9             <!-- Used for IIOP sockets in the standardconfiguration.

10                 To secure JacORByou need to setup SSL -->

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

12        </interface>

13     </interfaces>

原來的127.0.0.1,改成slave server的真實IP或0.0.0.0,否則slave上的應用,隻能在slave本機通路

d)

1     <servers>

2        <server name="slave-server-8082" group="my-group-2">

3            <socket-bindings port-offset="2"/>

4        </server>

5        <server name="slave-server-8083" group="my-group-2">          

6            <socket-bindings port-offset="3"/>

7        </server>

8     </servers>

手動在slave上建立二個server,并加入到my-group-2(注:group的值,必須是在master server上建立過的,否則啟動時,slave上的server無法正常加入到master相關的group中)

e)

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

最開頭的host節點上,加一個name="xxx"的屬性(本文中為slave57),這個name值最終會顯示在master server的jboss 控制台中,建議起一個容易識别的名稱。需要用add-user.sh建立一個slave57的管理者使用者,最後會生成<secret value="xxxx" />的字元串,記住。

四、安全認證配置

4.1 回到master server上,添加一個名為slave57的管理者帳号,并記住最後生成的<secretvalue="xxxx" />的字元串(xxx為密碼經過base64處理後的内容)

4.2 回到slave57這台server中,再次編輯host.xml,将<secret value="xxxx" />的内容替換

1<server-identities>

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

3                      <!--<secretvalue="c2xhdmVfdXNlcl9wYXNzd29yZA=="/>-->

4                      <secretvalue="c2xhdmU1Ny4xMjM="/>

5                 </server-identities>

中的<secretvalue=... />部分

解釋:slave啟動時,需要連接配接注冊到master的jboss中,連接配接過程需要安全認證,這裡的secret相當于認證的鑰匙,而認證的使用者名即為:正在連接配接的slave機器上jboss中host.xml中<host name='xxx'>這個節點中的name值,是以4.1需要在master中建立一個名為“slave57”的管理者

4.3 依次以domain模式啟動master、slave57 上的jboss

順利的話,master的jboss控制台裡,就能看到slave57已經自動注冊進來了

linux下jboss eap 6.3 域(Domain)模式配置

另一台slave伺服器,類似的做法,host.xml中<host>節點的name為slave128,建立的server為

2        <server name="slave-server-8080" group="my-group-1"/>

3        <server name="slave-server-8081" group="my-group-1">

4            <!-- server-twoavoids port conflicts by incrementing the ports in

5                 the defaultsocket-group declared in the server-group -->

6            <socket-bindings port-offset="1"/>

這樣,我們就建立了8個jboss server執行個體(4個在master server上,另外4個分散在slave57、slave128上),共劃分為2組。

linux下jboss eap 6.3 域(Domain)模式配置
linux下jboss eap 6.3 域(Domain)模式配置

五、應用部署

linux下jboss eap 6.3 域(Domain)模式配置

進入部署界面(如上圖),點選Add,添加一個war包,再Assign,配置設定到某一個group,即可自動部署到該group下所有server。如果想把一個app,部署到多個group,也沒問題,再次點選assign,再配置設定到另一個group。

以本文為例,部署了一個名為SSO的應用到my-group-1、my-group-2後,對應的8台jboss server應該均可通路,即:

http://172.21.129.181:8080/SSO/

http://172.21.129.181:8081/SSO/

http://172.21.129.181:8082/SSO/

http://172.21.129.181:8083/SSO/

http://172.21.129.57:8082/SSO/

http://172.21.129.57:8083/SSO/

http://172.21.129.128:8080/SSO/

http://172.21.129.128:8081/SSO/

這8個url均可通路

原作者:紫雲飄雪  http://9388567.blog.51cto.com/9378567/1593543

參考文章:菩提樹下的楊過  http://yjmyzz.cnblogs.com

對其進行更改,菩提樹下的楊過是基于windows的環境搭建

繼續閱讀