ホーム > 未分類 > JBoss AS 7 Admin Guide – Management tasks – Command line parameters

JBoss AS 7 Admin Guide – Management tasks – Command line parameters

今回は AS7 の起動スクリプトと AS のバインドアドレスや AS のディレクトリをカスタマイズする場合に使用するシステムプロパティについて書かれた Command line parameters について解説します。前回のエントリで Core management concepts の解説の途中段階ではありますが、これを知ってると色々便利なので。

あと、今回から解説対象のマニュアルを 7.1 系の JBoss AS Document に変更しています。 7.1 系はまだリリースされていませんがドキュメントだけはでているようです。。。

内容も 7.0 系のものとはちょっと違ってました。

Command line parameters

Domain / Standalone それぞれのモードにおいて domain.sh / standalone.sh を引数無しで実行した場合、デフォルトの設定を適用された AS7 が起動します。

以降の説明では、これら起動スクリプト実行時に引数を与えるまたは起動スクリプトを呼び出す独自スクリプトから引数を設定することでデフォルトの設定を上書きする方法について紹介します。

System properties

Domain / Standalone それぞれのモードは設定ファイルやデータの書込みディレクトリが標準位置にあることを想定したデフォル設定を使用します。

これファイルやディレクトリの標準的な位置はシステムプロパティで設定されており、システムプロパティにはデフォルト値があります。

システムプロパティを上書きするには、起動スクリプトに [-Dkey=value] 形式の jvm オプションパラメータを与えて AS を起動します。

$JBOSS_HOME/bin/standalone.sh -Djboss.home.dir=some/location/AS7/jboss-as \-Djboss.server.config.dir=some/location/AS7/jboss-as/custom-standalone

上記の例では、カスタマイズされた jboss.home.dir (ホームディレクトリ)と jboss.server.config.dir (設定ディレクトリ)を使用して standalone server  インスタンスを起動しています。特定のシステムプロパティに関する詳細については以降で解説する定義を参照して下さい。

システムプロパティの設定にはjvm オプションパラメータによるもの以外に、プパティファイルに [キー=バリュー] 形式で値を設定し起動スクリプトでこのプロパティファイルを指定することによる設定も可能です。(以下の例を参照して下さい。)

$JBOSS_HOME/bin/domain.sh –properties=/some/location/jboss.properties
$JBOSS_HOME/bin/domain.sh -P=/some/location/jboss.properties

起動スクリプトでプロパティファイルを指定するパラメータとプロパティファイルのシンタックスは domain.sh, standalone.sh あるいは MS Windows で使用される domain.bat / standalone.bat で同様となります。

プロパティファイルは [キー=バリュー] ペア形式の標準的な Java プロパティファイルとなります。

jboss.home.dir=/some/location/AS7/jboss-as
jboss.domain.config.dir=/some/location/AS7/custom-domain

Standalone

プロパティ名 使い方 デフォルト値
java.ext.dirs JDK 拡張ディレクトリの指定 null
jboss.home.dir JBoss AS 7 のルートディレクトリ standalone.sh 内で $JBOSS_HOME 変数として設定
jboss.server.base.dir server のベースディレクトリ jboss.home.dir/standalone
jboss.server.config.dir 設定のベースディレクトリ jboss.server.base.dir/configuration
jboss.server.data.dir 永続化データ(ファイル)の配置ディレクトリ jboss.server.base.dir/data
jboss.server.log.dir server.log ファイルの配置ディレクトリ jboss.server.base.dir/log
jboss.server.temp.dir 一時ファイルの配置ディレクトリ jboss.server.base.dir/tmp
jboss.server.deploy.dir デプロイされたコンテンツの配置ディレクトリ jboss.server.data.dir/contentjboss.server.data.dir/deployments

Managed Domain

プロパティ名 使い方 デフォルト値
jboss.home.dir JBoss AS 7 のルートディレクトリ domain.sh 内で $JBOSS_HOME 変数として設定
jboss.domain.base.dir domain のベースディレクトリ jboss.home.dir/domain
jboss.domain.config.dir 設定のベースディレクトリ jboss.domain.base.dir/configuration
jboss.domain.data.dir 永続化データ(ファイル)の配置ディレクトリ jboss.domain.base.dir/data
jboss.domain.log.dir host-controller.log と process-controller.log ファイルの配置ディレクトリ jboss.domain.base.dir/log
jboss.domain.temp.dir 一時ファイルの配置ディレクトリ jboss.domain.base.dir/tmp
jboss.domain.deployment.dir デプロイされたコンテンツの配置ディレクトリ jboss.domain.base.dir/content
jboss.domain.servers.dir domain で管理される server インスタンスの出力を含むディレクトリ jboss.domain.base.dir/log

Other command line parameters

AS7 起動スクリプトの引数を用いた [名前=値] 形式のパラメータ指定(コマンドラインパラメータ)が可能です。

–name=value

(例)

$JBOSS_HOME/bin/standalone.sh –server-config=standalone-ha.xml

パラメータ名が単一文字の場合、 ‘–‘ の代わりに ‘-‘ を使用することが可能です。

-x=value

(例)

$JBOSS_HOME/bin/standalone.sh -P=/some/location/jboss.properties

以前の JBoss AS のメジャーリリースで頻繁に使用されていたコマンドラインパラメータでは、互換性を保つために上記の例における “=” の スペース での代用がサポートされています。(以下の例を参照)

-b 192.168.100.10

AS7 で新たに導入されたコマンドラインパラメータについては [-x=value] 形式のシンタックスをサポートします。

次のセクションでは standalone / domain のそれぞれのモードで指定可能なコマンドラインパラメータを示します。

Standalone

名前 指定しない場合のデフォルト値
–server-config jboss.server.config.dir/standalone.xml jboss.server.config.dir からの相対パスまたは絶対パス

Managed Domain

名前 指定しない場合のデフォルト値
–domain-config jboss.domain.config.dir/domain.xml jboss.domain.config.dir からの相対パスまたは絶対パス
–host-config jboss.domain.config.dir/host.xml jboss.domain.config.dir からの相対パスまたは絶対パス

次のコマンドラインパラメータは値を持たずスレーブの host constoller でのみ使用可能です。

名前 機能
–backup スレーブの host controller に domain 設定ファイルのローカルコピーを作成/保持させます。
–cached-dc スレーブの host controller が起動時にマスタの domain controller から設定を取得できない場合に、 [–backup] を使用して事前に作成された設定のローカルコピーを使用して起動します。スレーブの host controller には domain 設定の修正が適用されないが、サーバの起動は可能です。

Common parameters

次のコマンドラインパラメータは standalone / domain の両起動スクリプトで適用可能です。

名前 機能
-b=<value> システムプロパティ jboss.bind.address に <value> を設定します。詳細は “Controlling the Bind Address with -b” を参照して下さい。
-b<name>=<value> システムプロパティ jboss.bind.address.<interface> を設定します。 <interface> は変更可能です。詳細は “Controlling the Bind Address with -b” を参照して下さい。
–version-v-V JBoss AS のバージョンを標準出力に表示し終了します。
–help-h 起動スクリプトオブションについてのヘルプを表示し終了します。

Controlling the Bind Address with -b

JBoss AS はソケットを standalone.xml, domain.xml, host.xml 中の <interfaces> 要素に含まれる IP アドレスインターフェース にバインドします。(詳細は Interfaces と Socket Bindings を参照して下さい。)

<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>

</interfaces>

これらの設定はシステムプロパティ jboss.bind.address.management および jboss.bind.address により行われ、デフォルト値はそれぞれ 127.0.0.1 となります。

Common Parameters” で解説されているように、 JBoss AS は “-b” および -b <name> コマンドラインスイッチ(パラメータ)をサポートします。これらのスイッチは jboss.bind.address および jboss.bind.address.<name> のシステムプロパティを設定します。

インターフェース設定が前述のものと同様で次のコマンドを使用して AS を起動した場合、 “public” と命名されたインターフェースのソケットは 192.168.100.10 にバインドされます。

$JBOSS_HOME/bin/standalone.sh -b=192.168.100.10

標準的な(デフォルトの)設定ファイルでは、 “public” インターフェース サーバ管理用の “management” インターフェースには結びついていません。
“public” インターフェースはエンドユーザのアクセスを処理します。

   Interface names

“public” インターフェースは特別ではなく便宜上提供されているものです。環境に合わせ独自のインターフェース名を与えることが可能です。

全ての IPv4 アドレスに public インターフェースをバインドするには次のようにして下さい。

$JBOSS_HOME/bin/standalone.sh -b=0.0.0.0

また、 management インターフェースを次のようにバインドすることも可能です。

$JBOSS_HOME/bin/standalone.sh -bmanagement=192.168.100.10

標準的な設定ファイルでは、 “management” インターフェースはサーバ管理に結びついたソケットとなります。 CLI が使用するソケット、管理コンソールが使用する HTTP ソケット、 JMX コネクタソケットがこれにあたります。

   Be Careful

-b スイッチはデフォルトで提供される設定ファイルのインターフェース(<inet-address>要素)のバインディングのみを制御します。設定ファイルの <interfaces> の子要素を <inet-addresse> から変更した場合、 -b コマンドスイッチによるインターフェースのバインディング指定は無視されます。

例えば、次の “public” インターフェースに対する設定により -b スイッチによる “public” に対する設定は無視されます。

<interface name=”public“>

<nic name=”eth0“/>

</interface>

重要なポイントは 設定ファイルによる設定内容が設定を定義し、 -b スイッチによる設定は設定ファイルの設定内容を上書きしないということです。コマンドラインパラメータはシステムプロパティを設定するための簡潔なシンタックスを便宜のために提供します。

上記の注意点( Be Careful )はかなり意訳をしたつもりなのですがそれでも意味が分かり難いので、解説が必要ですね。

インストール直後の AS7 の設定ファイル( standalone.xml )のインターフェース設定は以下の通りになっています。

<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>

</interfaces>

-b スイッチによるバインディングの設定はあくまで jboss.bind.address もしくは jboss.bind.address.management システムプロパティの値を変更するためのものです。上記の設定ファイルでは “management”, “public” がそれぞれ jboss.bind.address.management, jboss.bind.address を参照しているため、起動スクリプトの -b スイッチに与えたバインドアドレスがそれぞれのいいターフェースのバインドアドレスとして使用されます。

設定ファイルを以下のように設定した場合、前述のシステムプロパティがインターフェースのバインディング設定に使用されていないためバインドされるアドレスは -b スイッチの指定に従いません。

<interfaces>

<interface name=”management“>

<nic name=”eth0” />

</interface>

<interface name=”public“>

<inet-address value=”${jboss.bind.address:127.0.0.1}“/>

</interface>

</interfaces>

以降にシステムプロパティ/コマンドラインパラメータに関する実験とヒントを記述しておきます。是非実際に動かして動きを確認してみましょう!

[ex 1.]

ログ( server.log )の出力位置を変更する。

[ex 2.]

<http://${IPアドレス}:8080> と <http://${IPアドレス}:9990> にブラウザからアクセスした場合、前者のみアクセス可能なよう JBoss AS のバインドアドレスを変更する。

※ ${IPアドレス}にはJBossを稼働させるホストのIPアドレスを指定して下さい。

[ex 3.]

<http://${IPアドレス}:8080> と <http://${IPアドレス}:9990> にブラウザからアクセスした場合、後者のみアクセス可能なよう JBoss AS のバインドアドレスを変更する。

※ ${IPアドレス}にはJBossを稼働させるホストのIPアドレスを指定して下さい。

[ex 4.]

“public” インターフェースに対して <nic /> を使用してバインドアドレスを指定し、 -b 0.0.0.0 を指定して起動した場合の挙動を確認して下さい。


[ex 1. – hint]

起動スクリプト( standalone.sh )に -Djboss.server.log.dir=/var/log/jboss を与えることによりserver.log ファイルの配置位置を変更する。

[ex 2. – hint]

1. 起動スクリプト( standalone.sh )に -b 0.0.0.0, -b=0.0.0.0, -Djboss.bind.address=0.0.0.0 を指定する。

2. 設定ファイル( standalone.xml )の “public” インターフェースを以下のように指定する。

<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:0.0.0.0}”/>

</interface>

</interfaces>

あるいは

<interfaces>

<interface name=”management”>

<inet-address value=”${jboss.bind.address.management:127.0.0.1}”/>

</interface>

<interface name=”public”>

<nic name=”${バインド対象のNIC名}” />

</interface>

</interfaces>

[ex 3. – hint]

1. 起動スクリプト( standalone.sh )に -bmanagement=0.0.0.0 を指定する。

2. 設定ファイル( standalone.xml )の “management” インターフェースを以下のように設定する。

<interfaces>

<interface name=”management”>

<inet-address value=”${jboss.bind.address.management:0.0.0.0}”/>

</interface>

<interface name=”public”>

<inet-address value=”${jboss.bind.address:127.0.0.1}”/>

</interface>

</interfaces>

あるいは

<interfaces>

<interface name=”management”>

<nic name=”${バインド対象のNIC名}” />

</interface>

<interface name=”public”>

<inet-address value=”${jboss.bind.address:127.0.0.1}”/>

</interface>

</interfaces>

[ex 4. – hint]

インターフェース設定は管理コンソールの General Configuration – Interfaces から確認できます。

広告
タグ: ,
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。