1.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 ベースの管理コンソール、Java API、または HTTP API を使用して設定できます。これらの管理インターフェースを使用して加えられた変更は自動的に永続化され、XML 設定ファイルは管理 API によって上書きされます。方法としては、管理 CLI と管理コンソールの使用が推奨され、XML 設定ファイルの手作業による編集は推奨されません。
1.3.1. 管理ユーザー
デフォルトの JBoss EAP 設定はローカル認証を提供するため、ユーザーは認証の必要なくローカルホスト上で管理 CLI にアクセスできます。
しかし、リモートで管理 CLI にアクセスする場合や管理コンソールを使用する場合 (トラフィックの送信元がローカルホストであってもリモートアクセスとして見なされます) は、管理ユーザーを追加する必要があります。管理ユーザーを追加せずに管理コンソールへアクセスしようとすると、エラーメッセージが出力されます。
グラフィカルインストーラーを使用して JBoss EAP をインストールした場合は、インストールプロセス中に管理ユーザーが作成されます。
本ガイドでは、add-user
スクリプトを使用した JBoss EAP の簡単なユーザー管理を取り上げます。このスクリプトは既定の認証のプロパティーファイルに新しいユーザーを追加するためのユーティリティーです。
LDAP やロールベースアクセス制御 (RBAC) などの高度な認証および承認のオプションは、JBoss EAP『セキュリティーアーキテクチャー』の「コア管理認証」を参照してください。
1.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 にユーザーが追加され、特定のパーミッションは提供されません。ユーザー名とパスワードを入力します。入力後、パスワードを確認するよう指示されます。
注記ユーザー名には、以下の文字のみを使用できます。文字数と順番は自由です。
- 英数字 (a-z、A-Z、0-9)
- ダッシュ (-)、ピリオド (.)、コンマ (,)、アットマーク(@)
- バックスラッシュ (\)
- 等号 (=)
JBoss EAP ではデフォルトで、脆弱なパスワードは許可されますが、警告が表示されます。
デフォルト動作の変更に関する詳細は、JBoss EAP『設定ガイド』の「Add-User ユーティリティーのパスワード制限の設定」を参照してください。
-
ユーザーが属するグループのコンマ区切りリストを入力します。ユーザーがグループに属さないようにする場合は
ENTER
を押して空白のままにします。 -
情報を確認し、正しければ
yes
を入力します。 このユーザーがリモート JBoss EAP サーバーインスタンスを表すかどうかを決定します。基本的な管理ユーザーの場合は
no
を入力します。ManagementRealm への追加が必要になることがあるユーザータイプの 1 つは、JBoss EAP の別のインスタンスを表すユーザーです。これは、メンバーとしてクラスターに参加することを承認できる必要があります。この場合は、プロンプトで
yes
を選択すると、別の設定ファイルに追加する必要がある、ユーザーのパスワードを表すハッシュ化された秘密の値が提供されます。
パラメーターを add-user
スクリプトに渡すと、非対話的にユーザーを作成できます。ログや履歴ファイルにパスワードが表示されるため、この方法は共有システムでは推奨されません。詳細は、「Add-User ユーティリティーを非対話的に実行」を参照してください。
1.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 ユーティリティー引数』の項を参照してください。
1.3.2. 管理インターフェース
1.3.2.1. 管理 CLI
管理コマンドラインインターフェース (CLI) は、JBoss EAP のコマンドライン管理ツールです。
管理 CLI を使用して、サーバーの起動および停止、アプリケーションのデプロイおよびアンデプロイ、システムの設定、他の管理タスクの実行を行います。操作はバッチモードで実行でき、グループとして複数のタスクを実行できます。
ls
、cd
、pwd
など、多くの共通するターミナルコマンドを利用できます。管理 CLI はタブ補完に対応しています。
コマンドと操作、構文、およびバッチモードでの実行を含む、管理 CLI の使用に関する詳細は、JBoss EAP『管理 CLI ガイド』を参照してください。
管理 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
コマンドで --help
フラグを使用すると、そのコマンドの使用に関する説明が表示されます。たとえば、deploy
コマンドの使用に関する情報を表示するには、以下のコマンドを実行します。
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
1.3.2.2. 管理コンソール
管理コンソールは、JBoss EAP の Web ベースの管理ツールです。
管理コンソールを使用して、サーバーの開始および停止、アプリケーションのデプロイおよびアンデプロイ、システム設定の調整、サーバー設定の変更の永続化を行います。管理コンソールは管理タスクも実行でき、現在のユーザーが変更を行った後にサーバーインスタンスの再起動またはリロードが必要な場合はライブ通知も行います。
管理対象ドメインでは、同じドメインのサーバーインスタンスとサーバーグループをドメインコントローラーの管理コンソールから集中管理できます。
デフォルトの管理ポートを使用してローカルホストで稼働している JBoss EAP インスタンスの場合は、Web ブラウザーを使用して http://localhost:9990/console/index.html で管理コンソールにアクセスできます。管理コンソールにアクセスできるパーミッションを持つユーザーで認証する必要があります。
管理コンソールでは、JBoss EAP スタンドアロンサーバーまたは管理対象ドメインを操作および管理するために以下のタブを利用できます。
- Home (ホーム)
- 一般的な設定および管理タスクを行う方法を学ぶことができます。ツアーに参加して JBoss EAP 管理コンソールについてよく理解してください。
- Deployments (デプロイメント)
- デプロイメントを追加、削除、および有効化します。管理対象ドメインでは、デプロイメントをサーバーグループに割り当てます。
- Configuration (設定)
- Web サービス、メッセージング、高可用性などの機能を提供する利用可能なサブシステムを設定します。管理対象ドメインでは、各種サブシステム設定が含まれるプロファイルを管理します。
- Runtime (ランタイム)
- サーバーの状態、JVM 使用率、サーバーログなどのランタイム情報を表示します。管理対象ドメインではホスト、サーバーグループ、およびサーバーを管理します。
- Patching (パッチ)
- JBoss EAP インスタンスにパッチを適用します。
- Access Control (アクセス制御)
- ロールベースのアクセス制御を使用するときのユーザーとグループにロールを割り当てます。
1.3.3. 設定ファイル
1.3.3.1. スタンドアロンサーバー設定ファイル
スタンドアロン設定ファイルは EAP_HOME/standalone/configuration/
ディレクトリーにあります。事前定義されたプロファイルは 5 つあり (default、ha、full、full-ha、および load-balancer)、それぞれに個別のファイルが存在します。
設定ファイル | 目的 |
---|---|
| このスタンドアロン設定ファイルは、スタンドアロンサーバーを起動したときに使用されるデフォルト設定です。このファイルには、サブシステム、ネットワーキング、デプロイメント、ソケットバインディング、およびその他の設定詳細など、サーバーに関するすべての情報が含まれます。メッセージングや高可用性に必要なサブシステムは提供しません。 |
|
このスタンドアロン設定ファイルには、デフォルトのサブシステムすべてが含まれ、高可用性の |
|
このスタンドアロン設定ファイルには、デフォルトのサブシステムすべてが含まれ、 |
| このスタンドアロン設定ファイルには、メッセージングおよび高可用性を含むすべてのサブシステムのサポートが含まれます。 |
| このスタンドアロン設定ファイルには、ビルトインの mod_cluster フロントエンドロードバランサーを使用して他の JBoss EAP インスタンスの負荷を分散するために必要な最低限のサブシステムが含まれます。 |
デフォルトでは、スタンドアロンサーバーとして JBoss EAP を起動すると standalone.xml
ファイルが使用されます。他の設定で JBoss EAP を起動するには --server-config
引数を指定します。以下に例を示します。
$ EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml
1.3.3.2. 管理対象ドメイン設定ファイル
管理対象ドメインの設定ファイルは EAP_HOME/domain/configuration/
ディレクトリーにあります。
設定ファイル | 目的 |
---|---|
| これは、管理対象ドメインの主要設定ファイルです。ドメインマスターのみがこのファイルを読み取ります。このファイルには、すべてのプロファイル (default、ha、full、full-ha、および load-balancer) の設定が含まれています。 |
|
このファイルには、管理対象ドメインの物理ホスト固有の設定情報が含まれています (ネットワークインターフェース、ソケットバインディング、ホスト名、その他のホスト固有の詳細など)。 |
| このファイルには、サーバーをマスタードメインコントローラーとして実行するために必要な設定情報のみが含まれています。 |
| このファイルには、サーバーを管理対象ドメインのホストコントローラーとして実行するために必要な設定情報のみが含まれています。 |
デフォルトでは、JBoss EAP を管理対象ドメインで起動すると host.xml
ファイルが使用されます。他の設定で JBoss EAP を起動するには --host-config
引数を使用します。以下に例を示します。
$ EAP_HOME/bin/domain.sh --host-config=host-master.xml
1.3.3.3. 設定データのバックアップ
JBoss EAP のサーバー設定を後で復元するため、以下の場所にあるものはバックアップしておく必要があります。
EAP_HOME/standalone/configuration/
- ディレクトリー全体をバックアップして、スタンドアロンサーバーのユーザーデータ、サーバー設定、およびロギング設定を保存します。
EAP_HOME/domain/configuration/
- ディレクトリー全体をバックアップして、管理対象ドメインのユーザーおよびプロファイルデータ、ドメインおよびホスト設定、およびロギング設定を保存します。
EAP_HOME/modules/
- カスタムモジュールをバックアップします。
EAP_HOME/welcome-content/
- カスタムのウェルカムコンテンツをバックアップします。
EAP_HOME/bin/
- カスタムスクリプトまたは起動設定ファイルをバックアップします。
1.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
引数を指定し、設定ファイルを指定します。
1.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)