본문으로 건너뛰기

5.2 도메인 모드

도메인 모드의 가장 큰 특징은 여러 개의 JBoss 인스턴스를 ‘하나의 관리 단위’로 묶어 관리하는 기능이다. 도메인 기능을 사용하면 단일한 관리 인터페이스를 통해 여러 개의 JBoss 인스턴스에 대한 설정 변경이나 애플리케이션 배포 등의 관리 오퍼레이션을 실행할 수 있다.

그림 4는 도메인 구성 예제이다.

그림 4. 도메인 모드 구성 예

그림4에는 하나의 도메인이 구성되었다.

도메인은 ‘단일 도메인 컨트롤러로 관리 가능한 범위를 나타내는 논리적 단위’이다. 즉, 도메인이란 것은 관리 범위를 나타내는 컴포넌트로 도메인에 대한 설정을 도메인 전체에서 공유한다.

단순한 도메인 모드 생성하기

다음에서 단일 머신에서 도메인 모드를 구성하는 방법을 따라하기를 통해서 확인한다.

따라하기

  1. JBoss EAP 설치
  2. JBoss EAP 관리자 등록
  3. 도메인 디렉터리 생성
  4. 신규 도메인 host.xml 파일 수정
  5. 도메인 시작
  6. 웹 관리 콘솔에서 서버 그룹 생성
  7. 웹 관리 콘솔에서 서버 생성
  8. 웹 관리 콘솔에서 서버 그룹 ‘simpleGroup’을 실행
  1. JBoss EAP 설치

    access.redhat.com에서 JBoss EAP6 버전을 다운로드 한다. 다운로드 한 파일의 압축을 풀어 제품을 설치한다.
    $JBOSS_HOME/bin’ 디렉터리에 있는 sh 파일들에 대해 실행 권한을 준다.
    $ cd /EAP6book
    $ unzip jboss-eap-6.2.0.zip
    $ cd /EAP6book/jboss-eap-6.2/bin
    $ chmod +x *.sh
  2. JBoss EAP 관리자 등록

    $ ./add-user.sh
    What type of user do you wish to add?
    a) Management User (mgmt-users.properties)
    b) Application User (application-users.properties)
    (a): a
    Enter the details of the new user to add.
    Using realm 'ManagementRealm' as discovered from the existing property files.
    Username : admin
    The username 'admin' is easy to guess
    Are you sure you want to add user 'admin' yes/no? yes
    Password : [패스워드 입력]
    Re-enter Password : [패스워드 입력]
    What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:
    About to add user 'admin' for realm 'ManagementRealm'
    Is this correct yes/no? yes
    Added user 'admin' to file '/EAP6book/jboss-eap-6.2/standalone/configuration/mgmt-users.properties'
    Added user 'admin' to file '/EAP6book/jboss-eap-6.2/domain/configuration/mgmt-users.properties'
    Added user 'admin' with groups to file '/EAP6book/jboss-eap-6.2/standalone/configuration/mgmt-groups.properties'
    Added user 'admin' with groups to file '/EAP6book/jboss-eap-6.2/domain/configuration/mgmt-groups.properties'
    Is this new user going to be used for one AS process to connect to another AS process?
    e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
    yes/no? yes
    To represent the user add the following to the server-identities definition <secret val-ue="b3Blbm5hcnUhMjM0" />
    관리자 아이디는 admin 이며 패스워드는 ‘opennaru!234’이고, 패스워드의 암호화된 값은 ‘b3Blbm5hcnUhMjM0’ 이다.
  3. 도메인 디렉터리 생성

    설치된 JBoss EAP 디렉터리에 기본으로 있는 ‘domain’ 디렉터리를 새로운 도메인인 ‘simpleDomain’으로 복사한다.

    $ cd /EAP6book/jboss-eap-6.2

    $ cp -R domain simpleDomain
  4. 신규 도메인 host.xml 파일 수정

    새로 복사된 simpleDomain 디렉터리에 configuration 디렉터리에 있는 host.xml 파일을 다음과 같이 수정한다.

    <?xml version='1.0' encoding='UTF-8'?>

    <host name="simpleDomain" xmlns="urn:jboss:domain:1.5">
    … 중략 …
  5. 도메인 시작

    simpleDomain 디렉터리를 기준으로하여 도메인을 실행한다.

    $ cd /EAP6book/jboss-eap-6.2/bin

    $ ./domain.sh -Djboss.domain.base.dir=/EAP6book/jboss-eap-6.2/simpleDomain

    =========================================================================

    JBoss Bootstrap Environment

    JBOSS_HOME: /EAP6book/jboss-eap-6.2

    JAVA: java

    JAVA_OPTS: -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true

    =========================================================================

    …. 중략 …

    [Server:server-two] 14:09:27,846 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss EAP 6.2.0.GA (AS 7.3.0.Final-redhat-14) started in 5298ms - Start-ed 147 of 209 services (61 services are passive or on-demand)
  6. 웹 관리 콘솔에서 서버 그룹 생성

    웹 관리 콘솔에 접속한다. 관리자 아이디는 앞 단계에서 지정한 ‘admin’이고 패스워드는 ‘opennaru!234’이다.

    Hosts -> simpleDomain -> Server Groups -> Add 를 선택한다.

    다음의 항목을 새로운 서버 그룹 항목으로 입력한다.

    Name: simpleGroup

    Profile : default

    Socket Binding: standard-sockets

  7. 웹 관리 콘솔에서 서버 생성

    Hosts -> simpleDomain -> Server Configurations -> Add를 클릭한다.

    다음 항목을 새로 생성할 서버 정보로 입력한다.

    Name : simpleServer1

    Server Groups : simpleGroup

    Port Offset : 0

    Auto Start : True

  8. 웹 관리 콘솔에서 서버 그룹 ‘simpleGroup’을 실행

    Runtime -> Overview -> simpleGroup -> Start Group을 클릭하여 서버 그룹의 서버들을 시작한다.

    새로 생성한 simpleGroup의 simpleServer1서버로 접속한다.

    Port Offset 이 0이므로 해당 IP 의 8080 포트로 접속한다.

도메인 컨트롤러

도메인 모드에서 도메인 컨트롤러는 호스트 컨트롤러 중 하나가 그 역할을 담당하게 된다. 즉, 도메인 컨트롤러는 실제로는 호스트 컨트롤러 프로세스이지만, 논리적으로 도메인 전체를 관리하는 것으로 지정된 것이다. 도메인에서 도메인 컨트롤러와 호스트 컨트롤러의 구성 상의 특징은 다음과 같다.

  • 도메인 모드에서 도메인 컨트롤러는 하나만 존재
  • 호스트 컨트롤러 중 하나에 도메인 컨트롤러 역할이 할당됨
  • 도메인 컨트롤러를 다른 도메인에 대한 도메인 컨트롤러로 설정하는 것은 불가
  • 하나의 도메인 컨트롤러에 관리 가능한 호스트 컨트롤러의 수는 제한 없음

도메인 컨트롤러로 지정하는 방법은 도메인 컨트롤러가 될 host.xml파일에 <domain-controller>을 다음 그림과 같이 <local/>을 설정한다.

그림 5. 도메인 컨트롤러 설정

호스트 컨트롤러

호스트와 해당 호스트에서 실행되는 JBoss 인스턴스를 관리하는 것이 호스트 컨트롤러이다.

호스트를 설정하려면 아래 절차와 같이 host.xml을 직접 수정해야 한다. 도메인이 시작된 이후에 변경하고자 할 때도 host.xml파일을 수정해야 한다. 이때는 호스트 컨트롤러를 재 시작해야 한다.

  1. 호스트이름 설정

    <host> 엘리먼트의 name 속성에 대해서 <host name="호스트이름" …> 의 형식으로 설정한다.

  2. 바인드 주소(Interface)의 설정

    management, public, secure 3 개의 인터페이스에 대해 바인드 주소를 설정한다. 호스트 컨트롤러는 management 인터페이스로 지정된 IP에 바인드된다. 이 설정은 시작 시에 각각 jboss.bind.address.management, jboss.bind.address, jboss.bind.address.unsecure으로 시스템 프로퍼티를 지정하여 설정하는 것도 가능하며, 디폴트로 127.0.0.1에 바인드 된다.

    참고로 JBoss EAP 6에서는 설정 파일내의 $\{KEY:default} 형식으로 값을 지정하게 되면 시스템 프로퍼티를 사용하여 -DKEY=test와 같이 JBoss 시작 시 값을 변경할 수 있다. 시스템 프로퍼티를 지정하지 않으면 : 뒤의 값인 default가 적용된다.

서버 그룹

서버 그룹은 그 이름과 같이 서버를 논리적인 그룹으로 묶는 개념으로 도메인 모드에서는 각종 서브시스템이나 애플리케이션 배포 등을 관리하는데 있어서 중요한 컴포넌트이다.

서버 그룹의 주요 특징은 아래와 같다.

  • 서버는 반드시 하나의 서버 그룹에 속해야 한다.
  • 서버 그룹은 프로파일 설정과 배포에 대한 단위이다.
  • 각각의 서버에 대해서 프로파일이나 애플리케이션 배포에 대한 설정은 할 수 없다.
  • 서버 그룹에서는 배포, JVM 옵션, 시스템 프로퍼티 등의 설정은 동일하게 적용된다.
  • 도메인에서 정의 가능한 서버 그룹의 수는 제한이 없다.

관리 도구에서 서버 그룹에 대한 설정 추가 및 변경은 도메인 컨트롤러에 의해 설정 파일(domain.xml)에 저장되고 도메인 내의 호스트 컨트롤러를 통해서 같은 서버 그룹에 속하는 서버에 전달된다.

아래의 그림에서는 deployment1 및 profile1 가 Server Group1 로, deployment2 및 profile2 가 Server Group2 로 공유된다. 서버 그룹에서는 프로파일이나 애플리케이션 배포 외에도 JVM 설정이나 시스템 프로퍼티 등을 공유할 수 있다.

그림 6. 서버 그룹 구성

서버

호스트상에서 구동되는 서버는 host.xml 파일의 servers 하위 엘리먼트인 server에서 관리된다. 단일 호스트 상에서 설정 가능한 서버 수의 제한은 없다. 물론 해당 호스트의 CPU 나 메모리 등의 자원 할당량에 따라 제한이 생긴다.

그림 7. 서버 모델

프로세스 구성

도메인 모드에서는, 그림 8 과 같이 각 호스트마다 프로세스 컨트롤러, 호스트 컨트롤러(도메인 컨트롤러) 및 서버 프로세스가 시작된다. 이렇게 이름에 컨트롤러가 붙는 프로세스는 스탠드얼론 모드에서는 존재하지 않는 프로세스로 호스트들 간의 연결이나 서버 프로세스의 관리 혹은 다른 프로세스의 감시를 위한 프로세스이다.

그림 8. 도메인 모드에서 프로세스 구성

각 호스트에서 시작 스크립트($JBOSS_HOME/bin/domain.sh)를 실행하면 프로세스 컨트롤러가 시작되어 그 자식 프로세스인 호스트 컨트롤러(혹은 도메인 컨트롤러) 및 서버 프로세스를 실행한다. 호스트 컨트롤러와 서버 프로세스간에는 부모, 자식 관계는 없다. 프로세스 컨트롤러는 주로 자식 프로세스인 호스트 컨트롤러와 서버 프로세스의 라이프사이클 감시와 시작과 정지를 담당한다. 관리되는(자식프로세스) 호스트 컨트롤러가 어떠한 장애에 의해 정지했을 경우에 프로세스 컨트롤러가 그것을 감지하여 재 시작한다. 도메인 모드에서 호스트상에 도메인 컨트롤러, 호스트 컨트롤러, 서버 프로세스가 프로세스 컨트롤러가 없는 상태로 계속 가동하는 것은 설계되어 있지 않은 상태이다. 즉, 프로세스 컨트롤러가 동작하지 않는 서버에서는 하위 프로세스들은 동작할 수 없다.

호스트상의 특정 서버에 대한 시작/정지의 오퍼레이션은 도메인 컨트롤러로부터 해당 호스트의 호스트 컨트롤러에 전달되고, 실제로 프로세스 컨트롤러에 의해 시작, 정지한다. 프로세스 컨트롤러와 호스트 컨트롤러는 서로 소켓으로 통신한다.

도메인 모드에서 설정 파일들

도메인 모드에는 domain.xml 와 host.xml 두 개의 설정 파일이 있으며, 각각 설정 파일의 주요한 설정 항목은 다음과 같다.

그림 9. 도메인 모드 설정 파일 항목

  • domain.xml

    전체 도메인에 공유되는 profile, server-groups, deployments및 interfaces, socket-binding-groups 의 네임스페이스, 네트워크 설정을 관리한다.

  • host.xml

    호스트에 공유되는(혹은 호스트 고유 설정) servers, domain-controller, management 를 관리한다. 또, domain.xml 에서 정의한 interfaces와 같은 호스트의 명시적인 바인드 주소를 설정하여 subsystem에서 사용하는 포트에 대해서domain.xml에 설정된 socket-binding-group 을 참조한다.

domain.xml 는 마스터가 되는 호스트에만 있으며, 도메인 컨트롤러가 관리한다. host.xml 는 마스터 및 슬레이브가 되는 모든 호스트에 있으며 호스트 컨트롤러가 관리한다.

즉, 마스터가 되는 호스트의 도메인 컨트롤러는 domain.xml, host.xml 두 개의 설정 파일을 관리한다.

그림 10. 설정 파일 관리

호스트 컨트롤러 시작시 host.xml에만 포함되어 있는 interface 등 호스트 고유 설정을 로드한 후 호스트가 도메인의 마스터나 슬레이브 중 무엇인지 domain-controller 에서 판단한다. 호스트가 마스터인 경우에는 domain.xml을 로드한 후 슬레이브의 접속을 기다린다. 호스트가 슬레이브인 경우에는 마스터에 접속해, domain.xml 파일에 관리되는 도메인 전체의 설정을 받는다. domain.xml, host.xml 두 개의 파일에서 설정할 수 있는 항목은 도메인, 호스트, 서버 그룹과 서버의 여러 컴포넌트에 대해서 설정 가능하다. 설정이 적용되는 범위와 설정 가능한 항목들 중의 중요한 몇 가지는 다음의 표와 같다.

설정 항목 명도메인서버 그룹호스트서버
system-properties
paths
jvms

표 1. 도메인 모드에서 중복 설정할 수 있는 항목

설정이 중복 정의되었을 경우에는 도메인 > 서버 그룹 > 호스트 > 서버 순으로 적용된다. 더 넓은 단위에서 설정한 값을 작은 단위에서 오버라이드(override)하여 사용할 수 있다.

소켓바인딩

JBoss EAP는 다수의 서브시스템이 내부적으로 밀접하게 연결되어 구성한다. 각 서브시스템이 기능을 실현하는데 통신 처리가 필요한 경우 각각 독자적으로 소켓을 열어 최적화된 통신을 사용한다. 이 때문에 JBoss EAP는 HTTP나 AJP등으로 리퀘스트를 받아들이기 위한 포트 이외에도 클러스터링이나 운영에 필요한 여러 개의 포트를 이용한다.

JBoss 하나의 인스턴스에서 사용하는 모든 포트에 대해 어느 기능이 무슨 프로토콜로 몇 번의 포트를 사용하는지를 정리한 것이 소켓바인딩이다.

OS나 방화벽 때문에 특정 프로토콜이 통신을 할 수 없는 경우나 또는 동일 OS상의 다른 프로세스와 포트 충돌로 인하여 문제가 발생하는 경우 JBoss가 올바르게 동작할 수 없다.

소켓바인딩은 서버 인스턴스의 프로파일이나 구성 파라미터에 따라서 다르기 때문에 현재 구성되어 있는 소켓바인딩을 올바르게 이해하는 것이 중요하다.

기본적인 소켓바인딩 그룹은 아래와 같이 프로파일 별로 4가지가 준비되어 있다.

  • full-ha-sockets
  • full-sockets
  • ha-sockets
  • standard-sockets
이름포트멀티 캐스트 포트설명full-ha-socketsfull-socketsha-socketstandard-socket
ajp8009Apache JServ 프로토콜. HTTP 클러스터링 및 부하 분산에 사용한다.YesYesYesYes
http8080배포 된 웹 애플리케이션 기본 포트.YesYesYesYes
https8443배포 된 웹 애플리케이션과 클라이언트 사이의 SSL 암호화 연결.YesYesYesYes
jacorb3528JTS 트랜잭션 및 다른 ORB 서비스의 CORBA 서비스.YesYesNoNo
jacorb-ssl3529SSL 암호화 CORBA 서비스.YesYesNoNo
jgroups-diagnostics7500멀티 캐스트. HA 클러스터에서 피어 검색에 사용한다.YesNoYesNo
jgroups-mping45700멀티 캐스트. HA 클러스터의 멤버를 검색하는 데 사용된다.YesNoYesNo
jgroups-tcp7600TCP를 사용하여 HA 클러스터에서 유니 캐스트 피어 검색.YesNoYesNo
jgroups-tcp-fd57600TCP를 통한 HA 오류 감지에 사용한다.YesNoYesNo
jgroups-udp5520045688UDP를 사용하여 HA 클러스터에서 유니 캐스트 피어 검색.YesNoYesNo
jgroups-udp-fd54200UDP를 통한 HA 오류 감지에 사용한다.YesNoYesNo
messaging5445JMS 서비스.YesYesNoNo
messaging-groupHornetQ JMS 브로드 캐스트 감지 그룹에 의해 참조한다.YesYesNoNo
messaging-throughput5455JMS Remoting에 의해 사용한다.YesYesNoNo
mod_cluster23364JBoss EAP와 HTTP로드 밸런서 사이의 통신에 대한 멀티 캐스트 포트.YesNoYesNo
osgi-http8090OSGi 서브시스템을 사용하는 내부 컴포넌트에 의해 사용한다.YesYesYesYes
remoting4447원격 EJB 호출에 사용한다.YesYesYesYes
txn-recovery-environment4712JTA 트랜잭션 리커버리 매니저.YesYesYesYes
txn-status-manager4713JTA/JTS 트랜잭션 매니저.YesYesYesYes

표 2. 기본 소켓 바인딩 참조

여러 대의 머신에서 도메인 구성하기

이제 도메인모드의 구성요소와 동작 방법을 이해하기 위하여 실제 구축 방법과 주요 설정 항목들에 대해서 설명을 한다.

두 대의 머신에서 하나는 도메인 컨트롤러를 실행하여 master 노드 역할을 하고 다른 한 대는 slave 노드 역할을 한다. 서버 그룹은 ‘simpleServerGroup1’이라는 이름으로 설정하고, 서버 그룹 내에는 master 호스트에는 ‘master_server1’과 slave1 호스트에서 ‘slave1_server1’을 생성한다.

다음과 같은 정보로 도메인 구성을 진행한다.

  • 도메인 마스터 노드 : master (domain controller)
  • 호스트 #1 : master , slave1
  • 서버그룹 : simpleServerGroup1
  • 프로파일 : ha
  • 서버 : master_server1 (master), slave1_server1(slave1)
  • 소켓 바인딩 : ha-sockets

그림 11. 도메인 구성 샘플

서버 설치 하기

기존의 테스트 환경을 지우고 새롭게 JBoss EAP 6를 설치 한다. 기존 환경과 중복하여 구성하여도 무방하나 혼동을 피하기 위해서 새롭게 설치하는 것부터 설명한다.

$ cd /EAP6book

$ unzip jboss-eap-6.2.0.zip

$ chmod +x /EAP6book/jboss-eap-6.2/bin/*.sh

JBoss 관리자 계정 생성

도메인 전체를 관리할 관리자 계정을 생성한다. 관리자 아이디는 ‘admin’이고, 패스워드는 ‘opennaru!234’로 생성한다. <secret-value> 항목은 호스트 컨트롤러에서 도메인 컨트롤러로 접속하기 위한 암호화 키가 된다.

$ cd /EAP6book/jboss-eap-6.2/bin

$ ./add-user.sh

What type of user do you wish to add?

{empty}a) Management User (mgmt-users.properties)

{empty}b) Application User (application-users.properties)

(a): a

Enter the details of the new user to add.

Using realm 'ManagementRealm' as discovered from the existing property files.

Username : admin

The username 'admin' is easy to guess

Are you sure you want to add user 'admin' yes/no? yes

Password : [패스워드 입력]

Re-enter Password : [패스워드 입력]

What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:

About to add user 'admin' for realm 'ManagementRealm'

Is this correct yes/no? yes

Added user 'admin' to file '/EAP6book/jboss-eap-6.2/standalone/configuration/mgmt-users.properties'

Added user 'admin' to file '/EAP6book/jboss-eap-6.2/domain/configuration/mgmt-users.properties'

Added user 'admin' with groups to file '/EAP6book/jboss-eap-6.2/standalone/configuration/mgmt-groups.properties'

Added user 'admin' with groups to file '/EAP6book/jboss-eap-6.2/domain/configuration/mgmt-groups.properties'

Is this new user going to be used for one AS process to connect to another AS process?

e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.

yes/no? yes

To represent the user add the following to the server-identities definition <secret-value="b3Blbm5hcnUhMjM0" />

master와 slave1 노드 디렉터리 생성하기

도메인을 복사하여 master 노드 구성과 slave1 구성 노드 생성한다.

$ cp -R /EAP6book/jboss-eap-6.2/domain /EAP6book/jboss-eap-6.2/master

$ cp -R /EAP6book/jboss-eap-6.2/domain /EAP6book/jboss-eap-6.2/slave1

그림 12. domain.xml 파일과 host.xml 파일의 주요 설정 내용

호스트1을 master 도메인으로 설정하고 <host name="master"> 로 지정한다.

호스트 컨트롤러 중에서 도메인 컨트롤러로 지정하는 방법은 도메인 컨트롤러가 될 host.xml파일에 <domain-controller>을 다음과 같이 <local/>으로 설정한다.

<?xml version='1.0' encoding='UTF-8'?>

<host name="master" xmlns="urn:jboss:domain:1.5">

… 중략 ….

<domain-controller>

<local/>

</domain-controller>

호스트1에서master 노드를 실행한다.

$ cd /EAP6book/jboss-eap-6.2/bin

$ ./domain.sh -bmanagement 0.0.0.0 -b 0.0.0.0 -Djboss.domain.base.dir=/EAP6book/jboss-eap-6.2/master

=========================================================================

JBoss Bootstrap Environment

JBOSS_HOME: /eap6book/jboss-eap-6.2

JAVA: java

JAVA_OPTS: -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true

=========================================================================

….중략..

[Server:server-two] 15:15:15,080 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss EAP 6.2.0.GA (AS 7.3.0.Final-redhat-14) *started in 5868ms* - Start-ed 147 of 209 services (61 services are passive or on-demand)

slave1 호스트를 구성

도메인 컨트롤러가 실행되는 ‘master’ 노드와 다른 호스트에 slave1 노드를 구성한다.

일단 master 노드에서 구성한 디렉터리를 묶어 slave1 노드로 복사한다.

$ cd /EAP6book

$ jar -cvf jboss-eap-6.2.jar jboss-eap-6.2

$ scp /eap6book/jboss-eap-6.2.jar admin@XXX.XXX.XXX.2:/eap6book/.

slave1 노드에서 복사한 JBoss EAP 압축 파일을 푼다.

$ jar -xvf jboss-eap-6.2.jar

slave1 호스트에서 host.xml 파일 수정

slave1 호스트에서 “$JBOSS_EAP/slave1/configuration” 에서 host.xml 파일을 수정한다.

host.xml 파일에서 <host name="slave1"> 을 수정한다.

host.xml 파일에서 <security-realm name="ManagementRealm"> 항목에 <server-identities>를 add-user.sh를 실행하여 생성된 <secret-value>값을 추가한다.

<?xml version='1.0' encoding='UTF-8'?>
<host name="*slave1*" xmlns="urn:jboss:domain:1.5">
<management>
<security-realms>
<security-realm name="ManagementRealm">
<server-identities>
<secret value="b3Blbm5hcnUhMjM0"/>
</server-identities>
<authentication>
<local default-user="$local" />
<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>
<security-realm name="ApplicationRealm">
<authentication>
<local default-user="$local" allowed-users="*" />
<properties path="application-users.properties" relative-to="jboss.domain.config.dir" />
</authentication>
<authorization>
<properties path="application-roles.properties" relative-to="jboss.domain.config.dir"/>
</authorization>
</security-realm>
</security-realms>

host.xml 파일에서 <domain-controller> 항목에 username="admin" 을 추가한다.

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

slave1 호스트 실행

Host.xml 파일에서 <domain-controller> 항목에 username="admin" 을 추가한다.

$ chmod +x /EAP6book/jboss-eap-6.2/bin/*.sh

$ cd /EAP6book/jboss-eap-6.2/bin

$ ./domain.sh -bmanagement 0.0.0.0 -b 0.0.0.0 -Djboss.domain.base.dir=/EAP6book/jboss-eap-6.2/slave1 –Djboss.domain.master.address XXX.XXX.XXX.1

웹 관리 콘솔에서 simpleServerGroup1 서버 그룹 생성

Hosts -> Host:master -> Server Groups -> Add를 클릭한다.

[Create Server Group] master 노드에서 simpleServerGroup1 생성한다.

웹 관리 콘솔에서 master_server1서버 생성

Hosts -> Host:master -> Server Configurations -> Add를 클릭한다.

[Create Server Configuration] master 노드에서 master_server1 서버를 생성한다.

웹 관리 콘솔에서 slave1_server1서버 생성

Hosts -> Host:slave1 -> Server Configurations -> Add를 클릭한다.

[Create Server Configuration] slave1 노드에서 slave1_server1서버를 생성한다.

웹 관리 콘솔에서 simpleServerGroup1 서버 그룹 시작

Runtime -> Overview -> simpleServerGroup1 -> start Group를 클릭한다.

master 노드의 master_server1 과 slave1 노드의 slave1_server1 가 정상적으로 실행되는지 확인한다.