19.5.6. mod_cluster ワーカーノードの設定
mod_cluster ワーカーノードは、JBoss EAP 6 サーバーから構成されます。このサーバーは、管理対象ドメインまたはスタンドアロンサーバーのサーバーグループの一部にすることができます。JBoss EAP 6 内では、クラスターのすべてのノードを管理する別のプロセスが実行されます。これはマスターと呼ばれます。ワーカーノードの概念の詳細については、「ワーカーノード」を参照してください。Web サーバーのロードバランシングの概要については、「HTTP コネクターの概要 」を参照してください。
mod_cluster サブシステムを介して 1 度だけ設定されます。mod_cluster サブシステムを設定するには、『管理および設定ガイド』の「mod_cluster サブシステムの設定」を参照してください。各ワーカーノードは別々に設定されるため、クラスターを追加する各ノードに対してこの手順を繰り返してください。
ワーカーノード設定
- スタンドアロンサーバーを使用する場合は、スタンドアロンサーバーを
standalone-haプロファイルで起動する必要があります。 - 管理対象ドメインを使用する場合、サーバーグループは
haまたはfull-haプロファイルとha-socketsまたはfull-ha-socketsソケットバインディンググループを使用する必要があります。JBoss EAP 6 には、これらの要件を満たすother-server-groupという名前のクラスター対応サーバーグループが同梱されます。
注記
/profile=full-ha 部分を削除します。
手順19.9 ワーカーノードの設定
ネットワークインターフェースの設定
デフォルトでは、ネットワークインターフェースがすべて127.0.0.1に設定されます。スタンドアロンサーバーまたはサーバーグループ内の 1 つまたは複数のサーバーをホストする各物理ホストでは、インターフェースが他のサーバーが見つけることができるパブリック IP アドレスを使用するよう設定する必要があります。JBoss EAP 6 ホストの IP アドレスを変更するには、ホストをシャットダウンし、設定ファイルを直接編集する必要があります。これは、管理コンソールと管理 CLI を駆動する管理 API は固定管理アドレスに依存するためです。クラスター内の各サーバーの IP アドレスをマスターのパブリック IP アドレスに変更するには、次の手順を実行します。- 本トピックでこれまでに説明したプロファイルを使用して JBoss EAP サーバーを起動します。
EAP_HOME/bin/jboss-cli.shコマンド (Linux の場合) またはEAP_HOME\bin\jboss-cli.batコマンド (Microsoft Windows Server の場合) を使用して管理 CLI を起動します。connectと入力して localhost 上のドメインコントローラーに接続するか、connect IP_ADDRESSと入力してリモートサーバー上のドメインコントローラーに接続します。- 以下のコマンドを入力し、
management、public、およびunsecureインターフェースの外部 IP アドレスを編集します。必ずコマンドのEXTERNAL_IP_ADDRESSをホストの実際の外部 IP アドレスと置き換えてください。
各コマンドに対して以下のような結果が表示されるはずです。/interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:EXTERNAL_IP_ADDRESS}"/interface=public:write-attribute(name=inet-address,value="${jboss.bind.address.public:EXTERNAL_IP_ADDRESS}"/interface=unsecure:write-attribute(name=inet-address,value="${jboss.bind.address.unsecure:EXTERNAL_IP_ADDRESS}":reload"outcome" => "success"
- 管理対象ドメインに参加するマスターでないホストの場合、ホスト名を
masterから一意の名前に変更する必要があります。この名前はスレーブ全体で一意となる必要があり、クラスターに対する識別のために使用されます。そのため、使用する名前を覚えておくようにしてください。- 以下の構文を使用して、JBoss EAP スレーブホストを起動します。
例:bin/domain.sh --host-config=HOST_SLAVE_XML_FILE_NAMEbin/domain.sh --host-config=host-slave01.xml - 管理 CLI を起動します。
- 以下の構文を使用してホスト名を置き換えます。
例:/host=master:write-attribute(name="name",value=UNIQUE_HOST_SLAVE_NAME)
次の結果が表示されるはずです。/host=master:write-attribute(name="name",value="host-slave01")"outcome" => "success"
これは、以下のようにhost-slave01.xmlファイルの XML を変更します。<host name="host-slave01" xmlns="urn:jboss:domain:1.6">
- 管理対象ドメインに参加する必要がある新たに設定されたホストの場合は、
local要素を削除し、ドメインコントローラーを示すhost属性のremote要素を追加する必要があります。この手順はスタンドアロンサーバーには適用されません。- 以下の構文を使用して、JBoss EAP スレーブホストを起動します。
例:bin/domain.sh --host-config=HOST_SLAVE_XML_FILE_NAMEbin/domain.sh --host-config=host-slave01.xml - 管理 CLI を起動します。
- 次の構文を使用してドメインコントローラーを指定します。
例:/host=UNIQUE_HOST_SLAVE_NAME/:write-remote-domain-controller(host=DOMAIN_CONTROLLER_IP_ADDRESS,port=${jboss.domain.master.port:9999},security-realm="ManagementRealm")
次の結果が表示されるはずです。/host=host-slave01/:write-remote-domain-controller(host="192.168.1.200",port=${jboss.domain.master.port:9999},security-realm="ManagementRealm")"outcome" => "success"
これは、以下のようにhost-slave01.xmlファイルの XML を変更します。<domain-controller> <remote host="192.168.1.200" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/> </domain-controller>
各スレーブサーバーの認証を設定します。
各スレーブサーバーでは、ドメインコントローラーまたはスタンドアロンマスターのManagementRealmで作成されたユーザー名とパスワードが必要です。ドメインコントローラーまたはスタンドアロンマスターで、EAP_HOME/bin/add-user.shコマンドを実行します。同じユーザー名を持つユーザーをスレーブとしてManagementRealmに追加します。このユーザーが外部 JBoss AS インスタンスに対して認証する必要があるかどうか尋ねられた場合は、yesと回答します。パスワードchangemeを使用した、slave1という名前のスレーブに対するコマンドの入出力例は以下のとおりです。user:bin user$ ./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):
aEnter the details of the new user to add. Realm (ManagementRealm) : Username :slave1Password :changemeRe-enter Password :changemeAbout to add user 'slave1' for realm 'ManagementRealm' Is this correct yes/no?yesAdded user 'slave1' to file '/home/user/jboss-eap-6.0/standalone/configuration/mgmt-users.properties' Added user 'slave1' to file '/home/user/jboss-eap-6.0/domain/configuration/mgmt-users.properties' Is this new user going to be used for one AS process to connect to another AS process e.g. slave domain controller? yes/no? yes To represent the user add the following to the server-identities definition <secret value="Y2hhbmdlbWU=" />add-user.shの出力から Base64 でエンコードされた<secret>要素をコピーします。認証に Base64 でエンコードされたパスワード値を指定したい場合、add-user.shの出力の最終行より<secret>要素値をコピーします。次の手順でこの値が必要になります。新しい認証を使用するようスレーブホストのセキュリティーレルムを変更します。
以下の方法の 1 つを用いて秘密の値を指定できます。管理 CLI を使用して、サーバー設定ファイルに Base64 でエンコードされたパスワード値を指定します。
EAP_HOME/bin/jboss-cli.shコマンド (Linux の場合) またはEAP_HOME\bin\jboss-cli.batコマンド (Microsoft Windows Server の場合) を使用して管理 CLI を起動します。connectと入力して localhost 上のドメインコントローラーに接続するか、connect IP_ADDRESSと入力してリモートサーバー上のドメインコントローラーに接続します。- 以下のコマンドを入力して秘密の値を指定します。必ず
SECRET_VALUEを前の手順のadd-user出力から返された秘密の値に置き換えてください。
各コマンドに対して以下のような結果が表示されるはずです。/core-service=management/security-realm=ManagementRealm/server-identity=secret:add(value="SECRET_VALUE"):reload"outcome" => "success"
ホストを設定し、vault よりパスワードを取得します。
vault.shスクリプトを使用してマスクされたパスワードを生成します。次のような文字列が生成されます:VAULT::secret::password::ODVmYmJjNGMtZDU2ZC00YmNlLWE4ODMtZjQ1NWNmNDU4ZDc1TElORV9CUkVBS3ZhdWx0。vault に関する詳細は、「機密性の高い文字列のパスワード vault」の項にある 「クリアテキストファイルでの機密性が高い文字列のセキュア化」 を参照してください。EAP_HOME/bin/jboss-cli.shコマンド (Linux の場合) またはEAP_HOME\bin\jboss-cli.batコマンド (Microsoft Windows Server の場合) を使用して管理 CLI を起動します。connectと入力して localhost 上のドメインコントローラーに接続するか、connect IP_ADDRESSと入力してリモートサーバー上のドメインコントローラーに接続します。- 以下のコマンドを入力して秘密の値を指定します。必ず
SECRET_VALUEを前の手順で生成されたマスクされたパスワードに置き換えてください。
各コマンドに対して以下のような結果が表示されるはずです。/core-service=management/security-realm=ManagementRealm/server-identity=secret:add(value="${VAULT::secret::password::SECRET_VALUE}"):reload"outcome" => "success"
注記
vault でパスワードを作成する場合、Base64 エンコードではなくプレーンテキストで指定する必要があります。
システムプロパティーとしてパスワードを指定します。
次の例は、server.identity.passwordをパスワードのシステムプロパティー名として使用します。- 管理 CLI を使用してサーバー設定ファイルにパスワードのシステムプロパティーを指定します。
EAP_HOME/bin/jboss-cli.shコマンド (Linux の場合) またはEAP_HOME\bin\jboss-cli.batコマンド (Microsoft Windows Server の場合) を使用して管理 CLI を起動します。connectと入力して localhost 上のドメインコントローラーに接続するか、connect IP_ADDRESSと入力してリモートサーバー上のドメインコントローラーに接続します。- 以下のコマンドを入力し、システムプロパティーを使用する秘密のアイデンティティーを設定します。
各コマンドに対して以下のような結果が表示されるはずです。/core-service=management/security-realm=ManagementRealm/server-identity=secret:add(value="${server.identity.password}"):reload"outcome" => "success"
- システムプロパティーとしてパスワードを指定する場合、次の方法のいずれかを用いてホストを設定できます。
- 次の例のように、プレーンテキストのパスワードをコマンドライン引数として入力し、サーバーを起動します。
-Dserver.identity.password=changeme
注記
パスワードはプレーンテキストで入力する必要があります。ps -efコマンドを実行すると、このパスワードを確認できます。 - パスワードをプロパティーファイルに格納し、プロパティーファイルの URL をコマンドライン引数として渡します。
- キーと値のペアをプロパティーファイルに追加します。例は次のとおりです。
server.identity.password=changeme
- コマンドライン引数を用いてサーバーを起動します。
--properties=URL_TO_PROPERTIES_FILE
.
サーバーを再起動します。
ホスト名をユーザー名として使用し、暗号化された文字列をパスワードとして使用してスレーブがマスターに対して認証されます。
スタンドアロンサーバーまたは管理対象ドメインのサーバーグループ内のサーバーが mod_cluster ワーカーノードとして設定されます。クラスター化されたアプリケーションをデプロイする場合、セッションはフェイルオーバーのためにすべてのクラスターサーバーに複製され、外部 Web サーバーまたはロードバランサーから要求を受け入れることができます。クラスターの各ノードは、デフォルトで自動検出を使用して他のノードを検出します。自動検出と mod_cluster サブシステムの他の固有設定値を設定するには、「mod_cluster サブシステムの設定」を参照してください。Apache HTTP Server を設定するには、「外部 Web サーバーを JBoss EAP 6 アプリケーションの Web フロントエンドとして使用」を参照してください。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.