8.3. マネージドドメインの起動
8.3.1. マネージドドメインの起動
ドメインおよびホストコントローラーは、JBoss EAP に同梱される domain.sh
または domain.bat
スクリプトを使用して起動できます。使用できる起動スクリプトの引数の完全リストとそれら引数の目的については、--help
引数を使用するか、サーバーランタイム引数 を参照してください。
ドメイン内のサーバーグループのスレーブサーバーを起動する前にドメインコントローラーを起動する必要があります。最初にドメインコントローラーを起動した後、ドメイン内の関連する他のホストコントローラーを起動します。
ドメインコントローラーの起動
専用のドメインコントローラー向けに事前設定された host-master.xml
設定ファイルを使用してドメインコントローラーを起動します。
$ EAP_HOME/bin/domain.sh --host-config=host-master.xml
ドメインの設定に応じて、ホストコントローラーの接続を可能にするために設定を追加する必要があります。また、以下のドメイン設定例を参照してください。
ホストコントローラーの起動
スレーブホストコントローラー向けに事前設定された host-slave.xml
設定ファイルを使用してホストコントローラーを起動します。
$ EAP_HOME/bin/domain.sh --host-config=host-slave.xml
ドメインの設定に応じて、ドメインコントローラーへ接続し、ドメインコントローラーとの競合を回避するために設定を追加する必要があります。また、以下のドメイン設定例を参照してください。
8.3.2. ドメインコントローラーの設定
RPM インストールで JBoss EAP をインストールした場合、複数のドメインまたはホストコントローラーを同じマシン上に設定することはサポートされません。
ドメインコントローラーとして動作するホストの設定
<domain-controller>
宣言に <local/>
要素が含まれると、そのホストがドメインコントローラーとして指名されます。
<domain-controller> <local/> </domain-controller>
ドメインコントローラーとして動作するホストは、ドメインの他のホストがアクセスできる管理インターフェイスを公開する必要があります。HTTP(S) 管理インターフェイスを公開する必要はありませんが、管理コンソールへのアクセスを可能にするため、HTTP(S) 管理インターフェイスを公開することが推奨されます。
<management-interfaces> <native-interface security-realm="ManagementRealm"> <socket interface="management" port="${jboss.management.native.port:9999}"/> </native-interface> <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true"> <socket interface="management" port="${jboss.management.http.port:9990}"/> </http-interface> </management-interfaces>
EAP_HOME/domain/configuration/host-master.xml
ファイルには、ドメインコントローラーとして動作するための設定が事前設定されています。
8.3.3. ホストコントローラーの設定
RPM インストールで JBoss EAP をインストールした場合、複数のドメインまたはホストコントローラーを同じマシン上に設定することはサポートされません。
ドメインコントローラーへの接続
ホストコントローラー自体をドメインに登録するため、ホストコントローラーがドメインコントローラーに接続する方法を指定する必要があります。これは <domain-controller>
要素に設定されます。
<domain-controller> <remote security-realm="ManagementRealm"> <discovery-options> <static-discovery name="primary" protocol="${jboss.domain.master.protocol:remote}" host="${jboss.domain.master.address}" port="${jboss.domain.master.port:9999}"/> </discovery-options> </remote> </domain-controller>
EAP_HOME/domain/configuration/host-slave.xml
ファイルには、ドメインコントローラーに接続するための設定が事前設定されています。ホストコントローラーの起動時に jboss.domain.master.address
プロパティーを提供する必要があります。
$ EAP_HOME/bin/domain.sh --host-config=host-slave.xml -Djboss.domain.master.address=IP_ADDRESS
ドメインコントローラーの検出に関する詳細は、ドメインコントローラーの検出およびフェイルオーバー の項を参照してください。
ドメインの設定によっては、認証を提供して、ホストコントローラーがドメインコントローラーによって認証されるようにする必要がある場合があります。管理ユーザーと秘密の値の生成や、その値を用いたホストコントローラー設定の更新に関する詳細は、2 台のマシンでマネージドドメインを設定 を参照してください。
8.3.3.1. ホスト名の設定
マネージドドメインで実行されている各ホストには一意な名前を付ける必要があります。管理を容易にし、複数のホストで同じホスト設定ファイルを使用できるようにするために、以下の優先順位を用いてホスト名が決定されます。
-
設定されている場合、
host.xml
設定ファイルのホスト要素名属性。 -
jboss.host.name
システムプロパティーの値。 -
jboss.qualified.host.name
システムプロパティーの最後のピリオド (.
) の後に続く値。 最後のピリオド (.
) がない場合は全体の値。 -
POSIX ベースのオペレーティングシステムでは、
HOSTNAME
環境変数のピリオド (.
) の後に続く値。 Microsoft Windows ではCOMPUTERNAME
環境変数のピリオド (.
) の後に続く値。 最後のピリオドがない場合は、全体の値。
関連する host.xml
設定ファイルの上部にある host
要素に設定されたホストコントローラーの名前。 例は次のとおり。
<host xmlns="urn:jboss:domain:4.0" name="host1">
以下の手順に従って、管理 CLI を使用してホスト名を更新します。
JBoss EAP ホストコントローラーを起動します。
$ EAP_HOME/bin/domain.sh --host-config=host-slave.xml
管理 CLI を起動し、ドメインコントローラーに接続します。
$ EAP_HOME/bin/jboss-cli.sh --connect --controller=DOMAIN_CONTROLLER_IP_ADDRESS
以下のコマンドを実行して新しいホスト名を設定します。
/host=EXISTING_HOST_NAME:write-attribute(name=name,value=NEW_HOST_NAME)
これにより、
host-slave.xml
ファイルのホスト名属性が以下のように変更されます。<host name="NEW_HOST_NAME" xmlns="urn:jboss:domain:4.0">
変更を反映するためにホストコントローラーをリロードします。
reload --host=EXISTING_HOST_NAME
ホストコントローラーの名前が設定ファイルに設定されていない場合は、起動時にホスト名を渡すこともできます。
$ EAP_HOME/bin/domain.sh --host-config=host-slave.xml -Djboss.host.name=HOST_NAME
8.3.4. ドメインコントローラーの検出およびフェイルオーバー
マネージドドメインの設定時、ドメインコントローラーに接続するために必要な情報を使用して各ホストコントローラーを設定する必要があります。JBoss EAP では、ドメインコントローラーを検索する 複数のオプション を使用して各ホストコントローラーを設定できます。ホストコントローラーは、適切なオプションが見つかるまでオプションのリストを繰り返し処理します。
これにより、バックアップドメインコントローラーのコンタクト情報とともにホストコントローラーを事前設定できます。プライマリードメインコントローラーに問題がある場合は、バックアップホストコントローラーをマスターに昇格でき、昇格後にホストコントローラーを新しいマスターへ自動的にフェイルオーバーできます。
以下は、ドメインコントローラー検索の複数のオプションを持つホストコントローラーを設定する方法の例になります。
例: 複数のドメインコントローラーオプションを持つホストコントローラー
<domain-controller> <remote security-realm="ManagementRealm"> <discovery-options> <static-discovery name="primary" protocol="${jboss.domain.master.protocol:remote}" host="172.16.81.100" port="${jboss.domain.master.port:9999}"/> <static-discovery name="backup" protocol="${jboss.domain.master.protocol:remote}" host="172.16.81.101" port="${jboss.domain.master.port:9999}"/> </discovery-options> </remote> </domain-controller>
静的検出オプションには、以下の必須属性が含まれます。
- name
- このドメインコントローラー検出オプションの名前。
- host
- リモートドメインコントローラーのホスト名。
- port
- リモートドメインコントローラーのポート。
上記の例では、最初の検出オプションが指定されることが予想されます。2 つ目のオプションはフフェイルオーバーの状況で使用される可能性があります。
プライマリードメインコントローラーで問題が発生した場合、--backup
オプションで開始されたホストコントローラーをドメインコントローラーとして動作するよう昇格できます。
--backup
オプションを指定してホストコントローラーを起動すると、そのコントローラーはドメイン設定のローカルコピーを維持します。この設定は、ホストコントローラーがドメインコントローラーとして動作するよう再設定された場合に使用されます。
ホストコントローラーをドメインコントローラーに昇格
- 元のドメインコントローラーが停止した状態であることを確認します。
- 管理 CLI を使用して、新しいドメインコントローラーとなるホストコントローラーへ接続します。
以下のコマンドを実行してホストコントローラーを設定し、新しいドメインコントローラーとして動作するようにします。
/host=HOST_NAME:write-local-domain-controller
以下のコマンドを実行し、ホストコントローラーをリロードします。
reload --host=HOST_NAME
このホストコントローラーがドメインコントローラーとして動作するようになります。