第10章 オフライン設定でのサーバーの埋め込み

JBoss EAP スタンドアロンサーバーまたはホストコントローラープロセスを管理 CLI プロセス内に埋め込みすることができます。これにより、ネットワーク上で認識できない場合でもサーバーを設定することが可能になります。これは、一般的にサーバーがオンラインになる前に、セキュリティー関連の設定の管理やポートの競合の回避など、サーバーの初期設定で使用されます。

この、管理 CLI を経由した JBoss EAP インストールの直接的なローカル管理には、ソケットベースの接続が必要ありません。リモート JBoss EAP サーバーとの対話で一貫性を保つよう、埋め込みサーバーを持つ管理 CLI を使用できます。リモートサーバーの管理に使用できる標準の管理 CLI コマンドはすべて利用できます。

埋め込みスタンドアロンサーバーの起動

追加のプロセスを起動したり、ネットワークソケットを開かなくても、管理 CLI を使用してスタンドアロンサーバーをローカルで起動し、スタンドアロン設定を編集することができます。

以下の手順は、管理 CLI の起動、埋め込みスタンドアロンサーバーの開始、設定の変更、および埋め込みサーバーの停止を行います。

  1. 管理 CLI を起動します。

    $ EAP_HOME/bin/jboss-cli.sh
  2. 埋め込みスタンドアロンサーバーを起動します。

    --std-out=echo パラメーターを渡すと、標準出力がターミナルに表示されます。

    embed-server --std-out=echo
  3. 希望の操作を実行します。

    /socket-binding-group=standard-sockets/socket-binding=management-http:write-attribute(name=port,value=9991)
  4. 埋め込みサーバーを停止します。

    stop-embedded-server

    これにより、埋め込みサーバーが停止し、管理 CLI セッションが返されます。管理 CLI セッションも終了する場合は、quit を使用できます。

サーバー設定の指定

デフォルトでは、埋め込みサーバーは standalone.xml 設定ファイルを使用します。--server-config パラメーターを使用すると別の設定ファイルを指定できます。

embed-server --server-config=standalone-full-ha.xml

admin-only モードの開始

デフォルトでは、埋め込みサーバーは admin-only モードで起動されます。これは、サーバー管理に関するサービスを起動しますが、他のサービスは起動せず、エンドユーザーの要求も受け入れません。これは、サーバーの初期設定時に便利です。

--admin-only パラメーターを false に設定すると、埋め込みサーバーを通常の実行モードで起動できます。

embed-server --admin-only=false

また、reload コマンドを使用して実行モードを変更することもできます。

reload --start-mode=normal

標準出力の制御

埋め込みサーバーからの標準出力の処理方法を制御することができます。デフォルトでは、標準出力は破棄されますが、サーバーログに出力が記録されます。--std-out=echo を渡すと、サーバーの出力を管理 CLI の出力と表示できます。

embed-server --std-out=echo

ブートタイムアウト

デフォルトでは embed-server コマンドは、埋め込みサーバーが完全に起動するまで無期限にブロックされます。--timeout パラメーターを使用すると待機時間を秒単位で指定できます。1 未満の値の場合、CLI が埋め込みサーバーを管理できる状態になった時点で即座に返されます。

embed-server --timeout=30

空の設定での開始

埋め込みサーバーを開始するとき、空の設定で開始するように指定できます。これは、管理 CLI コマンドを使用してサーバー全体の設定を構築する場合に便利です。

embed-server --server-config=my-config.xml --empty-config

ファイルが存在すると、このコマンドは失敗します。これにより、設定ファイルを誤って削除しないようにします。--remove-existing パラメーターを渡すと、既存の設定をすべて削除するよう指定できます。

embed-server --server-config=my-config.xml --empty-config --remove-existing

埋め込みホストコントローラーの開始

追加のプロセスを起動したり、ネットワークソケットを開かなくても、管理 CLI を使用してホストコントローラーをローカルで起動し、ドメインおよびホストコントローラーの設定を変更することができます。

埋め込みホストコントローラーは、そのサーバーを起動しません。さらに、埋め込みホストコントローラーを開始するときに --admin-only パラメーターを使用することもできません。常に admin-only モードになるように起動されます。

以下の手順は、管理 CLI の起動、埋め込みホストコントローラーの開始、設定の変更、および埋め込みホストコントローラーの停止を行います。

  1. 管理 CLI を起動します。

    $ EAP_HOME/bin/jboss-cli.sh
  2. 埋め込みホストコントローラーを起動します。

    --std-out=echo パラメーターを渡すと、標準出力がターミナルに表示されます。

    embed-host-controller --std-out=echo
  3. 希望の操作を実行します。

    /host=HOST_NAME:write-attribute(name=name,value=NEW_HOST_NAME)
  4. 埋め込みホストコントローラーを停止します。

    stop-embedded-host-controller

ホストコントローラー設定の指定

デフォルトでは、埋め込みホストコントローラーはドメイン設定に domain.xml を使用し、ホスト設定には host.xml を使用します。--domain-config および --host-config パラメーターを使用すると、別の設定ファイルを指定できます。

embed-host-controller --domain-config=other-domain.xml --host-config=host-slave.xml
注記

使用する別の設定ファイルによっては、管理 CLI の起動時に特定のプロパティーを設定する必要があることがあります。以下に例を示します。

$ EAP_HOME/bin/jboss-cli.sh -Djboss.domain.master.address=127.0.0.1

標準出力の制御

埋め込みサーバーからの標準出力の処理方法を制御することができます。デフォルトでは、標準出力は破棄されますが、ホストコントローラーのログに出力が記録されます。--std-out=echo を渡すと、ホストコントローラーの出力を管理 CLI の出力と表示できます。

embed-host-controller --std-out=echo

ブートタイムアウト

デフォルトでは embed-host-controller コマンドは、埋め込みホストコントローラーが完全に起動するまで無期限にブロックされます。--timeout パラメーターを使用すると待機時間を秒単位で指定できます。1 未満の値の場合、CLI が埋め込みホストコントローラーを管理できる状態になった時点で即座に返されます。

embed-host-controller --timeout=30

管理 CLI での非モジュラークラスローディング

EAP_HOME/bin/jboss-cli.sh スクリプトを使用して管理 CLI を起動すると、モジュラークラスローディング環境が使用されます。EAP_HOME/bin/client/jboss-cli-client.jar を使用して管理 CLI を非モジュラークラスローディング環境で実行するには、JBoss EAP インストールのルートディレクトリーを指定する必要があります。

  1. 管理 CLI を起動します。

    $ java -jar EAP_HOME/bin/client/jboss-cli-client.jar
  2. ルートインストールディレクトリーを指定して、埋め込みサーバーを起動します。

    embed-server --jboss-home=/path/to/EAP_HOME
    注記

    ホストコントローラーを埋め込みするには、embed-host-controller コマンドを使用します。

    埋め込みロジックによって、サーバーに適したモジュラークラスローディング環境が設定されます。モジュラークラスローダーのモジュールパスには単一の要素 EAP_HOME/modules があります。

管理 CLI を起動する方法に関わらず、埋め込みサーバーはモジュラークラスローディング環境で実行されます。