第2章 JBoss EAP の管理
2.1. JBoss EAP のダウンロードおよびインストール
本ガイドでは、プラットフォームに依存しない ZIP インストールを使用した基本的な JBoss EAP のダウンロードおよびインストール手順を説明します。
グラフィカルインストーラーや RPM パッケージを使用して JBoss EAP をインストールする手順など、その他の詳細はインストールガイドを参照してください。
2.1.1. インストールの要件
JBoss EAP をインストールする前に、以下の要件を満たしていることを確認してください。
一般的な要件
- システムは JBoss EAP 7 supported configurations に従ってサポートされます。
- Red Hat がリリースした更新とエラータを適用し、システムが最新の状態であるようにしてください。
ZIP インストールの要件
- JBoss EAP を実行するユーザーは、インストールディレクトリーへの読み書きアクセスが必要になります。
- 適切な Java Development Kit がインストールされている必要があります。
-
Hewlett-Packard HP-UX では、
unzip
ユーティリティーがインストールされている必要があります。 -
Windows Server では、
JAVA_HOME
とPATH
環境変数が設定されている必要があります。
2.1.2. JBoss EAP のダウンロード
JBoss EAP の ZIP インストールファイルは、Red Hat カスタマーポータルからダウンロードできます。
- Red Hat カスタマーポータルにログインします。
- ダウンロードをクリックします。
- 製品のダウンロードリストで Red Hat JBoss Enterprise Application Platform をクリックします。
- Version ドロップダウンメニューで希望のバージョンを選択します。
- 表で Red Hat JBoss Enterprise Application Platform 7.x.x を見つけ、Download をクリックします。
- ZIP ファイルを希望の場所に保存します。
2.1.3. JBoss EAP のインストール
JBoss EAP の ZIP インストールファイルをダウンロードしたら、パッケージの内容を展開するとインストールできます。
必要な場合は、JBoss EAP をインストールするサーバーおよび場所に ZIP ファイルを移動します。
- JBoss EAP を実行するユーザーは、このディレクトリーへの読み書きアクセスが必要になります。
ZIP アーカイブを展開します。
$ unzip jboss-eap-7.x.x.zip
注記Windows Server の場合は ZIP ファイルを右クリックし、すべて展開 を選択します。
ZIP アーカイブを展開して作成したディレクトリーは、サーバーの最上位ディレクトリーとなります。このディレクトリーを EAP_HOME
と呼びます。
2.2. JBoss EAP の開始および停止
2.2.1. JBoss EAP の開始
JBoss EAP は、スタンドアロンサーバーと管理対象ドメインの 2 つの操作モードの 1 つで実行され、Red Hat Enterprise Linux、Windows Server、Oracle Solaris および Hewlett-Packard HP-UX でサポートされます。
JBoss EAP を起動するコマンドは、基盤のプラットフォームと選択する操作モードによって異なります。
JBoss EAP をスタンドアロンサーバーとして起動
$ EAP_HOME/bin/standalone.sh
Windows Server の場合は EAP_HOME\bin\standalone.bat
スクリプトを使用します。
この起動スクリプトは、EAP_HOME/bin/standalone.conf
ファイル (Windows Server の場合は standalone.conf.bat
) を使用して、JVM オプションなどのデフォルト設定の一部を設定します。このファイルの設定はカスタマイズすることができます。
JBoss EAP はデフォルトで standalone.xml
設定ファイルを使用しますが、別の設定ファイルを使用して起動することもできます。利用できるスタンドアロン設定ファイルとそれらの使用方法については、スタンドアロンサーバー設定ファイル の項を参照してください。
使用できる起動スクリプトの引数の完全リストとそれら引数の目的については、--help
引数を使用するか、サーバーランタイム引数を参照してください。
管理対象ドメインでの JBoss EAP の起動
ドメイン内のサーバーグループのサーバーを起動する前にドメインコントローラーを起動する必要があります。このスクリプトを使用して最初にドメインコントローラーを起動した後、関連するホストコントローラーに対して使用します。
$ EAP_HOME/bin/domain.sh
Windows Server の場合は、EAP_HOME\bin\domain.bat
スクリプトを使用します。
この起動スクリプトは、 EAP_HOME/bin/domain.conf
ファイル (Windows Server の場合は domain.conf.bat
) を使用して、JVM オプションなどのデフォルト設定の一部を設定します。このファイルの設定はカスタマイズすることができます。
JBoss EAP はデフォルトで host.xml
ホスト設定ファイルを使用しますが、別の設定ファイルを使用して起動することもできます。利用できる管理対象ドメイン設定ファイルとそれらの使用方法については、管理対象ドメイン設定ファイル の項を参照してください。
管理対象ドメインを設定するとき、追加の引数を起動スクリプトに渡す必要があります。使用できる起動スクリプトの引数の完全リストとそれら引数の目的については、--help
引数を使用するか、サーバーランタイム引数 の項を参照してください。
2.2.2. JBoss EAP の停止
JBoss EAP の停止方法は、開始した方法によって異なります。
JBoss EAP の対話的なインスタンスの停止
JBoss EAP を起動したターミナルで Ctrl+C
を押します。
JBoss EAP のバックグラウンドインスタンスの停止
管理 CLI を使用して、稼働中のインスタンスへ接続し、サーバーをシャットダウンします。
管理 CLI を起動します。
$ EAP_HOME/bin/jboss-cli.sh --connect
shutdown
コマンドを実行します。shutdown
管理対象ドメインで実行している場合、shutdown
コマンドに --host
引数を使用してシャットダウンする、ホスト名を指定する必要があります。
2.3. JBoss EAP の管理
JBoss EAP は簡単な設定を使用し、スタンドアロンサーバーまたは管理対象ドメインごとに 1 つの設定ファイルを使用します。スタンドアロンサーバーのデフォルト設定は EAP_HOME/standalone/configuration/standalone.xml
ファイルに保存され、管理対象ドメインのデフォルト設定は EAP_HOME/domain/configuration/domain.xml
ファイルに保存されます。また、ホストコントローラーのデフォルト設定は EAP_HOME/domain/configuration/host.xml
ファイルに保存されます。
JBoss EAP はコマンドラインの管理 CLI または Web ベースの管理コンソールを使用して設定できます。これらの管理インターフェースを使用して加えられた変更は自動的に永続化され、XML 設定ファイルは管理 API によって上書きされます。XML 設定ファイルの手作業による編集は推奨されません。
2.3.1. 管理ユーザー
デフォルトの JBoss EAP 設定はローカル認証を提供するため、ユーザーは認証の必要なくローカルホスト上で管理 CLI にアクセスできます。
しかし、リモートで管理 CLI にアクセスする場合や管理コンソールを使用する場合 (トラフィックの送信元がローカルホストであってもリモートアクセスとして見なされます) は、管理ユーザーを追加する必要があります。管理ユーザーを追加せずに管理コンソールへアクセスしようとすると、エラーメッセージが出力されます。
グラフィカルインストーラーを使用して JBoss EAP がインストールされた場合は、インストールプロセス中に管理ユーザーが作成されます。
本ガイドでは、add-user
スクリプトを使用した JBoss EAP の簡単なユーザー管理について説明します。このスクリプトは、既定の認証のプロパティーファイルに新規ユーザーを追加するユーティリティーです。LDAP やロールベースアクセス制御 (RBAC) などの高度な認証や承認のオプションについては、Security Architecture の Core Management Authentication を参照してください。
2.3.1.1. 管理ユーザーの追加
add-user
ユーティリティースクリプトを実行し、プロンプトに従います。$ EAP_HOME/bin/add-user.sh
注記Windows Server の場合は
EAP_HOME\bin\add-user.bat
スクリプトを使用します。ENTER
を押して、デフォルトのオプションa
を選択し、管理ユーザーを追加します。このユーザーは ManagementRealm に追加され、管理コンソールまたはコマンドラインベース管理 CLI を使用して監理操作を実行することを許可されます。別のオプション (
b
) を選択すると、アプリケーションに使用される ApplicationRealm にユーザーが追加され、特定のパーミッションは提供されません。ユーザー名とパスワードを入力します。入力後、パスワードを確認するよう指示されます。
デフォルトでは、弱いパスワードは許可されますが、警告が表示されます。このデフォルト動作の変更に関する詳細は、JBoss EAP Configuration Guide の Setting Add-User Utility Password Restrictions を参照してください。
-
ユーザーが属するグループのコンマ区切りリストを入力します。ユーザーがグループに属さないようにする場合は
ENTER
を押して空白のままにします。 -
情報を確認し、正しければ
yes
を入力します。 このユーザーがリモート JBoss EAP サーバーインスタンスを表すかどうかを決定します。基本的な管理ユーザーの場合は
no
を入力します。ManagementRealm への追加が必要になることがあるユーザーのタイプの 1 つが、JBoss EAP の別のインスタンスを表すユーザーで、メンバーとしてクラスターに参加することを承認できる必要があります。この場合は、プロンプトで
yes
を選択すると、異なる設定ファイルに追加する必要がある、ユーザーのパスワードを表すハッシュ化された秘密の値が提供されます。
パラメーターを add-user
スクリプトに渡すと、非対話的にユーザーを作成できます。ログや履歴ファイルにパスワードが表示されるため、この方法は共有システムでは推奨されません。詳細は Add-User ユーティリティーを非対話的に実行を参照してください。
2.3.1.2. Add-User ユーティリティーを非対話的に実行
コマンドラインで引数を渡すと add-user
スクリプトを非対話的に実行することができます。最低でも、ユーザー名とパスワードを提供する必要があります。
ログや履歴ファイルにパスワードが表示されるため、この方法は共有システムでは推奨されません。
複数のグループに属するユーザーの作成
以下のコマンドは、guest
および mgmtgroup
グループの管理ユーザー (mgmtuser1
) を追加します。
$ EAP_HOME/bin/add-user.sh -u 'mgmtuser1' -p 'password1!' -g 'guest,mgmtgroup'
代替プロパティーファイルの指定
デフォルトでは、add-user
スクリプトを使用して作成されたユーザーおよびグループ情報は、サーバー設定ディレクトリーにあるプロパティーファイルに保存されます。
ユーザー情報は以下のプロパティーファイルに保存されます。
-
EAP_HOME/standalone/configuration/mgmt-users.properties
-
EAP_HOME/domain/configuration/mgmt-users.properties
グループ情報は以下のプロパティーファイルに保存されます。
-
EAP_HOME/standalone/configuration/mgmt-groups.properties
-
EAP_HOME/domain/configuration/mgmt-groups.properties
これらのデフォルトディレクトリーとプロパティーファイル名は上書きできます。以下のコマンドは、ユーザープロパティーファイルの名前と場所を指定して、新しいユーザーを追加します。
$ EAP_HOME/bin/add-user.sh -u 'mgmtuser2' -p 'password1!' -sc '/path/to/standaloneconfig/' -dc '/path/to/domainconfig/' -up 'newname.properties'
このコマンドを実行すると、新しいユーザーは /path/to/standaloneconfig/newname.properties
および /path/to/domainconfig/newname.properties
にあるユーザープロパティーファイルに追加されます。これらのファイルは存在している必要があり、存在しない場合はエラーが出力されます。
使用できる add-user
の引数の完全リストとそれら引数の目的については、--help
引数を使用するか、Add-User ユーティリティー引数の項を参照してください。
2.3.2. 管理インターフェース
2.3.2.1. 管理 CLI
管理コマンドラインインターフェース (CLI) は、JBoss EAP のコマンドライン管理ツールです。
管理 CLI を使用して、サーバーの起動および停止、アプリケーションのデプロイおよびアンデプロイ、システムの設定、他の管理タスクの実行を行います。操作はバッチモードで実行でき、複数のタスクをグループとして実行できます。
ls
、cd
、pwd
など、多くの共通するターミナルコマンドを使用できます。管理 CLI はタブ補完をサポートします。
コマンドと操作、構文、およびバッチモードでの実行を含む、管理 CLI の使用に関する詳細は、JBoss EAP Management CLI Guide を参照してください。
管理 CLI の起動
$ EAP_HOME/bin/jboss-cli.sh
Windows Server の場合は EAP_HOME\bin\jboss-cli.bat
スクリプトを使用します。
稼働中のサーバーへの接続
connect
上記の代わりに、管理 CLI を起動し、EAP_HOME/bin/jboss-cli.sh --connect
コマンドを使用すると 1 度に接続できます。
ヘルプの表示
以下のコマンドを実行してヘルプを表示します。
help
以下のコマンドを実行して、特定コマンドのヘルプを表示します。
deploy --help
管理 CLI の終了
quit
システム設定の表示
以下のコマンドは read-attribute
操作を使用して、データソースの例が有効になっているかどうかを表示します。
/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled) { "outcome" => "success", "result" => true }
管理対象ドメインで実行している場合、コマンドの前に /profile=PROFILE_NAME
を付けて更新するプロファイルを指定する必要があります。
/profile=default/subsystem=datasources/data-source=ExampleDS:read-attribute(name=enabled)
システム設定の更新
以下のコマンドは write-attribute
操作を使用して、データソースの例を無効にします。
/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled,value=false)
サーバーの起動
管理対象ドメインで実行している場合、管理 CLI を使用してサーバーを起動および停止することもできます。
/host=HOST_NAME/server-config=server-one:start
2.3.2.2. 管理コンソール
管理コンソールは JBoss EAP の Web ベースの管理ツールです。
管理コンソールを使用して、サーバーの開始および停止、アプリケーションのデプロイおよびアンデプロイ、システム設定の調整、サーバー設定の変更の永続化を行います。管理コンソールは管理タスクも実行でき、現在のユーザーが変更を行った後にサーバーインスタンスの再起動またはリロードが必要な場合はライブ通知も行います。
管理対象ドメインでは、同じドメイン内のサーバーインスタンスやサーバーグループをドメインコントローラーの管理コンソールから一元的に管理できます。
デフォルトの管理ポートを使用してローカルホストで稼働している JBoss EAP インスタンスの場合、Web ブラウザーを使用して http://localhost:9990/console/App.html で管理コンソールにアクセスできます。管理コンソールにアクセスできるパーミッションを持つユーザーで認証する必要があります。
管理コンソールでは、JBoss EAP スタンドアロンサーバーまたは管理対象ドメインを操作および管理するために以下のタブが提供されます。
- Home (ホーム)
- 一般的な設定および管理タスクを行う方法を学ぶことができます。ツアーに参加して JBoss EAP 管理コンソールについてよく理解してください。
- Deployments (デプロイメント)
- デプロイメントを追加、削除、および有効化します。管理対象ドメインでは、デプロイメントをサーバーグループに割り当てます。
- Configuration (設定)
- Web サービス、メッセージング、高可用性などの機能を提供する利用可能なサブシステムを設定します。管理対象ドメインでは、異なるサブシステム設定が含まれるプロファイルを管理します。
- Runtime (ランタイム)
- サーバーの状態、JVM 使用率、サーバーログなどのランタイム情報を表示します。管理対象ドメインではホスト、サーバーグループ、およびサーバーを管理します。
- Access Control (アクセス制御)
- ロールベースアクセス制御を使用するときにユーザーとグループにロールを割り当てます。
- Patching (パッチ)
- JBoss EAP インスタンスにパッチを適用します。
更新された管理コンソールについて説明するツアーに参加するには、管理コンソールのホームページにある Take a Tour リンクをクリックします。
フォームフィールドの詳細を表示するには、Need Help? リンクをクリックします。
実行した設定アクションのメッセージ履歴を表示するには、管理コンソールの右上にある Messages リンクをクリックします。
2.3.3. 設定ファイル
2.3.3.1. スタンドアロンサーバー設定ファイル
スタンドアロン設定ファイルは EAP_HOME/standalone/configuration/
ディレクトリーにあります。事前定義された 4 つのプロファイル (default、ha、full、および full-ha) ごとに個別のファイルがあります。
設定ファイル | 目的 |
---|---|
|
このスタンドアロン設定ファイルは、スタンドアロンサーバーを起動したときに使用されるデフォルト設定です。このファイルには、サブシステム、ネットワーキング、デプロイメント、ソケットバインディング、およびその他の設定詳細など、サーバーに関するすべての情報が含まれます。メッセージングや高可用性に必要なサブシステムは提供しません。 |
|
このスタンドアロン設定ファイルには、デフォルトのサブシステムすべてが含まれ、高可用性の |
|
このスタンドアロン設定ファイルには、デフォルトのサブシステムすべてが含まれ、 |
|
このスタンドアロン設定ファイルには、メッセージングおよび高可用性を含むすべてのサブシステムのサポートが含まれます。 |
デフォルトでは、スタンドアロンサーバーとして JBoss EAP を起動すると standalone.xml
ファイルが使用されます。他の設定で JBoss EAP を起動するには --server-config
引数を使用します。以下に例を示します。
$ EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml
2.3.3.2. 管理対象ドメイン設定ファイル
管理対象ドメイン設定ファイルは EAP_HOME/domain/configuration/
ディレクトリーにあります。
設定ファイル | 目的 |
---|---|
|
これは管理対象ドメインのメインの設定ファイルです。ドメインマスターのみがこのファイルを読み取ります。このファイルには、すべてのプロファイルの設定が含まれます (default、ha、full、full-ha)。 |
|
このファイルには、管理対象ドメインの物理ホスト固有の設定情報が含まれています (ネットワークインターフェース、ソケットバインディング、ホスト名、その他のホスト固有の詳細など)。 |
|
このファイルには、サーバーをマスタードメインコントローラーとして実行するために必要な設定情報のみが含まれています。 |
|
このファイルには、サーバーを管理対象ドメインのホストコントローラーとして実行するために必要な設定情報のみが含まれています。 |
デフォルトでは、JBoss EAP を管理対象ドメインで起動すると host.xml
ファイルが使用されます。他の設定で JBoss EAP を起動するには --host-config
引数を使用します。以下に例を示します。
$ EAP_HOME/bin/domain.sh --host-config=host-master.xml
2.3.3.3. 設定データのバックアップ
JBoss EAP のサーバー設定を後で復元するため、以下の場所にあるものはバックアップしておく必要があります。
EAP_HOME/standalone/configuration/
- ディレクトリー全体をバックアップして、スタンドアロンサーバーのユーザーデータ、サーバー設定、およびロギング設定を保存します。
EAP_HOME/domain/configuration/
- ディレクトリー全体をバックアップして、管理対象ドメインのユーザーおよびプロファイルデータ、ドメインおよびホスト設定、およびロギング設定を保存します。
EAP_HOME/modules/
- カスタムモジュールをバックアップします。
EAP_HOME/welcome-content/
- カスタムのウェルカムコンテンツをバックアップします。
EAP_HOME/bin/
- カスタムスクリプトまたは起動設定ファイルをバックアップします。
2.3.3.4. 設定ファイルのスナップショット
サーバーの保守や管理をしやすくするため、JBoss EAP は起動時に元の設定ファイルにタイムスタンプを付けたものを作成します。管理操作によってその他の設定変更が行われると、元のファイルが自動的にバックアップされ、インスタンスの作業用コピーが参照およびロールバック用に保持されます。さらに、現在のサーバー設定の現時点のコピーである設定スナップショットを撮ることができます。これらのスナップショットは管理者によって保存およびロードされます。
以下の例では、standalone.xml
ファイルが使用されますが、同じプロセスが domain.xml
および host.xml
にも適用されます。
スナップショットの取得
管理 CLI を使用して、現在の設定のスナップショットを取得します。
:take-snapshot { "outcome" => "success", "result" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20151022-133109702standalone.xml" }
スナップショットのリスト
管理 CLI を使用して、取得したすべてのスナップショットをリストします。
:list-snapshots { "outcome" => "success", "result" => { "directory" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot", "names" => [ "20151022-133109702standalone.xml", "20151022-132715958standalone.xml" ] } }
スナップショットの削除
管理 CLI を使用して、スナップショットを削除します。
:delete-snapshot(name=20151022-133109702standalone.xml)
スナップショットを用いたサーバーの起動
スナップショットまたは自動保存された設定を使用してサーバーを起動できます。
-
EAP_HOME/standalone/configuration/standalone_xml_history
ディレクトリーへ移動し、ロードするスナップショットまたは保存された設定ファイルを確認します。 サーバーを起動し、選択した設定ファイルを示します。設定ディレクトリー
EAP_HOME/standalone/configuration/
からの相対パスを渡します。$ EAP_HOME/bin/standalone.sh --server-config=standalone_xml_history/snapshot/20151022-133109702standalone.xml
管理対象ドメインで実行している場合は、代わりに --host-config
引数を使用し、設定ファイルを指定します。
2.3.3.5. プロパティーの置き換え
JBoss EAP では、式を使用して設定のリテラル値の代わりに置換可能なプロパティーを定義できます。式の形式は ${PARAMETER:DEFAULT_VALUE}
になります。指定のパラメーターが設定されると、パラメーターの値が使用されます。設定されない場合は、デフォルト値が使用されます。
式の解決でサポートされるリソースはシステムプロパティー、環境変数、および vault になります。デプロイメントの場合のみ、デプロイメントアーカイブの META-INF/jboss.properties
ファイルにリストされたプロパティーをソースとすることができます。サブデプロイメントをサポートするデプロイメントタイプでは、プロパティーファイルが EAR などの外部のデプロイメントにある場合は解決がすべてのサブデプロイメントに対してスコープ指定されます。プロパティーファイルがサブデプロイメントにある場合は、解決はそのサブデプロイメントのみに対してスコープ指定されます。
以下の例では、jboss.bind.address
パラメーターが設定されていなければ、standalone.xml
設定ファイルによって public
インターフェースの inet-address
が 127.0.0.1
に設定されます。
<interface name="public"> <inet-address value="${jboss.bind.address:127.0.0.1}"/> </interface>
以下のコマンドを使用して、EAP をスタンドアロンサーバーとして起動するときに jboss.bind.address
パラメータを設定できます。
$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
ネストされた式
式はネストすることができるため、固定値の代わりにさらに高度な式を使用できます。ネストされた式の書式は、通常の式の場合と同様ですが、ある式が別の式に組み込まれます。例を以下に示します。
${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}
ネストされた式は、再帰的に評価されるため、最初に 内部の式が評価され、次に 外部の式が評価されます。式が別の式へ解決する場合は式も再帰的になることがあり、その後解決されます。ネストされた式は式が許可された場所ならどこでも許可されます (ただし、管理 CLI コマンドを除く)。
ネストされた式が使用される例としては、データソース定義で使用されるパスワードがマスクされている場合などがあります。データソースの設定には以下のような行がある場合があります。
<password>${VAULT::ds_ExampleDS::password::1}</password>
この場合、ネストされた式を使用すると、ds_ExampleDS
の値をシステムプロパティー (datasource_name
) に置き換えることができます。上記の行の代わりに以下の行をデータソースの設定に使用できます。
<password>${VAULT::${datasource_name}::password::1}</password>
JBoss EAP は、最初に式 ${datasource_name}
を評価し、次にこれを外側の大きい式に入力して、結果となる式を評価します。この設定の利点は、データソースの名前が固定された設定から抽象化されることです。
記述子ベースのプロパティー置換
データソース接続パラメーターなどのアプリケーションの設定は、通常は開発デプロイメント、テストデプロイメント、および本番環境によって異なります。Java EE 仕様にはこれらの設定を外部化するメソッドが含まれていないため、このような違いはビルドシステムスクリプトで対応することがあります。JBoss EAP では、記述子ベースのプロパティー置換を使用して設定を外部的に管理できます。
記述子ベースのプロパティー置換は、記述子を基にプロパティーを置き換えるため、アプリケーションやビルドチェーンから環境に関する仮定を除外できます。環境固有の設定は、アノテーションやビルドシステムスクリプトでなく、デプロイメント記述子に指定できます。設定はファイルに指定したり、パラメーターとしてコマンドラインで提供したりできます。
ee
サブシステムには、プロパティー置換が適用されたかどうかを制御する複数のフラグがあります。
JBoss 固有の記述子置換は jboss-descriptor-property-replacement
フラグによって制御され、デフォルトで有効になっています。有効になっていると、以下のデプロイメント記述子でプロパティーを置換できます。
-
jboss-ejb3.xml
-
jboss-app.xml
-
jboss-web.xml
-
*-jms.xml
-
*-ds.xml
以下の管理 CLI コマンドを使用すると、JBoss 固有の記述子でプロパティー置換を有効または無効にできます。
/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)
Java EE の記述子置換は spec-descriptor-property-replacement
フラグによって制御され、デフォルトで無効になっています。有効にすると、以下のデプロイメント記述子でプロパティーを置換できます。
-
ejb-jar.xml
-
persistence.xml
-
application.xml
-
web.xml
以下の管理 CLI コマンドを使用すると、Java EE の記述子でプロパティー置換を有効または無効にできます。
/subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)
2.4. ネットワークおよびポート設定
2.4.1. インターフェース
JBoss EAP は設定全体で名前付きインターフェースを参照します。これにより、使用ごとにインターフェースの完全な詳細を必要とせず、論理名を使用して個々のインターフェース宣言を参照できます。
また、複数のマシンでネットワークインターフェースの詳細が異なる場合に管理対象ドメインの設定が容易になります。各サーバーインスタンスは、論理名グループに対応できます。
standalone.xml
、domain.xml
、および host.xml
ファイルにはインターフェース宣言が含まれます。使用されるデフォルトの設定に応じて、複数の事前設定されたインターフェース名があります。management
インターフェースは、HTTP 管理エンドポイントを含む、管理レイヤーが必要なすべてのコンポーネントおよびサービスに使用できます。public
インターフェースは、アプリケーション関連のネットワーク通信すべてに使用できます。unsecure
インターフェースは、標準設定の IIOP ソケットに使用されます。private
インターフェースは、標準設定の JGroups ソケットに使用されます。
2.4.1.1. デフォルトインターフェース設定
<interfaces> <interface name="management"> <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:127.0.0.1}"/> </interface> <interface name="private"> <inet-address value="${jboss.bind.address.private:127.0.0.1}"/> </interface> <interface name="unsecure"> <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/> </interface> </interfaces>
デフォルトでは、JBoss EAP はこれらのインターフェースを 127.0.0.1
にバインドしますが、適切なプロパティーを設定すると起動時に値を上書きできます。たとえば、以下のコマンドで JBoss EAP をスタンドアロンサーバーとして起動するときに public
インターフェースの inet-address
を設定できます。
$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
この代わりに、サーバー起動のコマンドラインで -b
スイッチを使用することができます。サーバー起動オプションの詳細は、サーバーランタイム引数を参照してください。
JBoss EAP が使用するデフォルトのネットワークインターフェースまたはポートを変更する場合、変更したインターフェースまたはポートを使用するスクリプトを変更する必要があることに注意してください。これには JBoss EAP サービススクリプトが含まれます。また、管理コンソールまたは CLI にアクセスするときに適切なインターフェースとポートを指定するようにしてください。
2.4.1.2. インターフェースの設定
ネットワークインターフェースは、物理インターフェースの論理名および選択基準を指定して宣言されます。選択基準はワイルドカードアドレスを参照したり、一致が有効となるためにインターフェースまたはアドレスで必要となる 1 つ以上の特徴のセットを指定したりできます。使用できるすべてのインターフェース選択基準は インターフェース属性を参照してください。
インターフェースは管理コンソールまたは管理 CLI を使用して設定できます。以下にインターフェースの追加および更新の例をいくつか示します。最初に管理 CLI コマンドを示し、その後に対応する設定 XML を示します。
NIC 値があるインターフェースの追加
NIC 値が eth0
であるインターフェースを新たに追加します。
/interface=external:add(nic=eth0)
<interface name="external"> <nic name="eth0"/> </interface>
複数の条件値があるインターフェースの追加
稼働時に適切なサブネットのすべてのインターフェースまたはアドレスと一致し、マルチキャストをサポートする、ポイントツーポイントでないインターフェースを新たに追加します。
/interface=default:add(subnet-match=192.168.0.0/16,up=true,multicast=true,not={point-to-point=true})
<interface name="default"> <subnet-match value="192.168.0.0/16"/> <up/> <multicast/> <not> <point-to-point/> </not> </interface>
インターフェース属性の更新
public
インターフェースのデフォルトの inet-address
値を更新し、jboss.bind.address
プロパティーによってこの値が起動時に設定されるようにします。
/interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:192.168.0.0}")
<interface name="public"> <inet-address value="${jboss.bind.address:192.168.0.0}"/> </interface>
管理対象ドメインでインターフェースをサーバーに追加
/host=master/server-config=SERVER_NAME/interface=INTERFACE_NAME:add(inet-address=127.0.0.1)
<servers> <server name="SERVER_NAME" group="main-server-group"> <interfaces> <interface name="INTERFACE_NAME"> <inet-address value="127.0.0.1"/> </interface> </interfaces> </server> </servers>
2.4.2. ソケットバインディング
ソケットバインディングとソケットバインディンググループを使用することにより、ネットワークポートと、JBoss EAP の設定で必要なネットワーキングインターフェースとの関係を定義できます。ソケットバインディングはソケットの名前付き設定です。ソケットバインディンググループは、ある論理名でグループ化されたソケットバインディング宣言のコレクションです。
これにより、使用ごとにソケット設定の完全な詳細を必要とせずに、設定の他のセクションが論理名でソケットバインディングを参照できるようになります。
これらの名前付き設定の宣言は standalone.xml
および domain.xml
設定ファイルにあります。スタンドアロンサーバーにはソケットバインディンググループが 1 つのみ含まれますが、管理対象ドメインには複数のグループを含むことができます。管理対象ドメインで各サーバーグループのソケットバインディンググループを作成するか、複数のサーバーグループ間でソケットバインディンググループを共有することができます。
デフォルトで JBoss EAP によって使用されるポートは、使用されるソケットバインディンググループと、個々のデプロイメントの要件に応じて異なります。
2.4.2.1. 管理ポート
JBoss EAP 7 では、管理ポートが集約されました。JBoss EAP 7 は、管理 CLI によって使用されるネイティブ管理と、Web ベース管理コンソールによって使用される HTTP 管理の両方に 9990
ポートを使用します。JBoss EAP 6 でネイティブ管理ポートとして使用されていた 9999
ポートは使用されなくなりましたが、必要な場合は有効にできます。
管理コンソールに対して HTTPS を有効にすると、デフォルトではポート 9993
が使用されます。
2.4.2.2. デフォルトのソケットバインディング
JBoss EAP には、事前設定された 4 つのプロファイル (default、ha、full、および full-ha) ごとに 1 つのソケットバインディンググループが含まれています。
デフォルトのポートや説明などのデフォルトのソケットバインディングに関する詳細情報は、デフォルトのソケットバインディングを参照してください。
JBoss EAP が使用するデフォルトのネットワークインターフェースまたはポートを変更する場合、変更したインターフェースまたはポートを使用するスクリプトを変更する必要があることに注意してください。これには JBoss EAP サービススクリプトが含まれます。また、管理コンソールまたは CLI にアクセスするときに適切なインターフェースとポートを指定するようにしてください。
スタンドアロンサーバー
スタンドアロンサーバーとして実行されている場合、設定ファイルごとに 1 つのソケットバインディンググループのみが定義されます。各スタンドアロン設定ファイル (standalone.xml
、standalone-ha.xml
、standalone-full.xml
、および standalone-full-ha.xml
) は、対応するプロファイルによって使用される技術のソケットバインディングを定義します。
たとえば、デフォルトのスタンドアロン設定ファイル (standalone.xml
) は以下のソケットバインディングを指定します。
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> <socket-binding name="http" port="${jboss.http.port:8080}"/> <socket-binding name="https" port="${jboss.https.port:8443}"/> <socket-binding name="txn-recovery-environment" port="4712"/> <socket-binding name="txn-status-manager" port="4713"/> <outbound-socket-binding name="mail-smtp"> <remote-destination host="localhost" port="25"/> </outbound-socket-binding> </socket-binding-group>
管理対象ドメイン
管理対象ドメインで実行されている場合、すべてのソケットバインディンググループは domain.xml
ファイルで定義されます。事前定義されたソケットバインディンググループは 4 つあります。
-
standard-sockets
-
ha-sockets
-
full-sockets
-
full-ha-sockets
各ソケットバインディンググループは、対応するプロファイルによって使用される技術のソケットバインディングを指定します。たとえば、full-ha-sockets
ソケットバインディンググループは、高可用性のために full-ha プロファイルによって使用される複数の jgroups
ソケットバインディングを定義します。
<socket-binding-groups> <socket-binding-group name="standard-sockets" default-interface="public"> <!-- Needed for server groups using the 'default' profile --> <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> <socket-binding name="http" port="${jboss.http.port:8080}"/> <socket-binding name="https" port="${jboss.https.port:8443}"/> <socket-binding name="txn-recovery-environment" port="4712"/> <socket-binding name="txn-status-manager" port="4713"/> <outbound-socket-binding name="mail-smtp"> <remote-destination host="localhost" port="25"/> </outbound-socket-binding> </socket-binding-group> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- Needed for server groups using the 'ha' profile --> ... </socket-binding-group> <socket-binding-group name="full-sockets" default-interface="public"> <!-- Needed for server groups using the 'full' profile --> ... </socket-binding-group> <socket-binding-group name="full-ha-sockets" default-interface="public"> <!-- Needed for server groups using the 'full-ha' profile --> <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> <socket-binding name="http" port="${jboss.http.port:8080}"/> <socket-binding name="https" port="${jboss.https.port:8443}"/> <socket-binding name="iiop" interface="unsecure" port="3528"/> <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/> <socket-binding name="jgroups-mping" interface="private" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/> <socket-binding name="jgroups-tcp" interface="private" port="7600"/> <socket-binding name="jgroups-tcp-fd" interface="private" port="57600"/> <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/> <socket-binding name="jgroups-udp-fd" interface="private" port="54200"/> <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/> <socket-binding name="txn-recovery-environment" port="4712"/> <socket-binding name="txn-status-manager" port="4713"/> <outbound-socket-binding name="mail-smtp"> <remote-destination host="localhost" port="25"/> </outbound-socket-binding> </socket-binding-group> </socket-binding-groups>
管理インターフェースのソケット設定は、ドメインコントローラーの host.xml
ファイルに定義されます。
2.4.2.3. ソケットバインディングの設定
ソケットバインディングを設定するとき、port
および interface
属性や、multicast-address
および multicast-port
などのマルチキャスト設定を設定できます。使用できるソケットバインディング属性すべての詳細は、ソケットバインディング属性を参照してください。
ソケットバインディングは管理コンソールまたは管理 CLI を使用して設定できます。以下の手順では、ソケットバインディンググループの追加、ソケットバインディングの追加、および管理 CLI を使用したソケットバインディングの設定を行います。
新しいソケットバインディンググループを追加します。これは、スタンドアロンサーバーとして実行している場合は追加できないことに注意してください。
/socket-binding-group=new-sockets:add(default-interface=public)
ソケットバインディングを追加します。
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)
ソケットバインディンググループによって設定されるデフォルト以外のインターフェースを使用するよう、ソケットバインディングを変更します。
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:write-attribute(name=interface,value=unsecure)
以下の例は、上記の手順の完了後に XML 設定がどのようになるかを示しています。
<socket-binding-groups> ... <socket-binding-group name="new-sockets" default-interface="public"> <socket-binding name="new-socket-binding" interface="unsecure" port="1234"/> </socket-binding-group> </socket-binding-groups>
2.4.2.4. ポートオフセット
ポートオフセットとは、該当するサーバーのソケットバインディンググループに指定されたすべてのポート値に追加される数値のオフセットのことです。これにより、同じホストの別のサーバーとの競合を防ぐため、サーバーはソケットバインディンググループに定義されたポート値とオフセットを継承できるようになります。たとえば、ソケットバインディンググループの HTTP ポートが 8080
で、サーバーが 100
をポートオフセットとして使用する場合、HTTP ポートは 8180
になります。
管理 CLI を使用して管理対象ドメインのサーバーにポートオフセットとして 250
を設定する例を以下に示します。
/host=master/server-config=server-two/:write-attribute(name=socket-binding-port-offset,value=250)
ポートオフセットは、管理対象ドメインのサーバーと、同じホストで複数のスタンドアロンサーバーを実行する場合に使用できます。
jboss.socket.binding.port-offset
プロパティーを使用してスタンドアロンサーバーを起動するときにポートオフセットを渡すことができます。
$ EAP_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100
2.4.3. IPv6 アドレス
デフォルトでは、JBoss EAP は IPv4 アドレスを使用して実行するように設定されます。以下の手順では、IPv6 アドレスを使用して実行するよう JBoss EAP を設定する方法を示します。
IPv6 アドレスの JVM スタックの設定
IPv6 アドレスを優先するように、起動設定を更新します。
起動設定ファイルを開きます。
-
スタンドアロンサーバーとして実行している場合は、
EAP_HOME/bin/standalone.conf
ファイル (Windows Server の場合はstandalone.conf.bat
) を編集します。 -
管理対象ドメインで実行している場合は、
EAP_HOME/bin/domain.conf
ファイル (Windows Server の場合はdomain.conf.bat
) を編集します。
-
スタンドアロンサーバーとして実行している場合は、
java.net.preferIPv4Stack
プロパティーをfalse
に設定します。-Djava.net.preferIPv4Stack=false
java.net.preferIPv6Addresses
プロパティーを追加し、true
に設定します。-Djava.net.preferIPv6Addresses=true
以下の例は、上記の変更を行った後に起動設定ファイルの JVM オプションがどのようになるかを示しています。
# Specify options to pass to the Java VM. # if [ "x$JAVA_OPTS" = "x" ]; then JAVA_OPTS="-Xms1303m -Xmx1303m -Djava.net.preferIPv4Stack=false" JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true" JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv6Addresses=true" else
IPv6 アドレスのインターフェース宣言の更新
設定のデフォルトのインターフェース値は、IPv6 アドレスに変更できます。たとえば、以下の管理 CLI コマンドは management
インターフェースを IPv6 ループバックアドレス (::1
) に設定します。
/interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:[::1]}")
以下の例は、上記のコマンド実行後に XML 設定がどのようになるかを示しています。
<interfaces> <interface name="management"> <inet-address value="${jboss.bind.address.management:[::1]}"/> </interface> .... </interfaces>