平田です。
JBossの管理CLIの--file
オプションを使うと、複数のコマンドをファイルに列挙しておき、それを一括実行することができます。こういう機能がある場合、環境依存のパラメータを外出しにして、CLIファイルを再利用したくなります。
CLIには変数の概念が無いようですが、CLIフロントエンド側でシステムプロパティ展開を用いることで似たようなことができます。
CLIフロントエンド(jboss-cli.sh)側でシステムプロパティ展開を有効にするには、$JBOSS_HOME/bin/jboss-cli.xml
を編集します。
<resolve-parameter-values>true</resolve-parameter-values>
この状態で、リクエストスレッド上限を50にしてみます。以下のようなCLIファイル、及びプロパティファイルを用意します。
# set-max-connections.cli /profile=default/subsystem=web/connector=http:write-attribute(name=max-connections, value="${maxconn}")
# max-connections.properties maxconn=50
以下のように実行します。
$ ./jboss-cli.sh -c --file=/path/to/set-max-connections.cli --properties=/path/to/max-connections.properties
本当はdeployコマンドに渡すファイルパスを変数として外出しにしたかったのですが、上手くいきませんでした。
また、システムプロパティはファイル指定する必要があるようです。以下だと動きませんでした。
$ ./jboss-cli.sh -c --file=/path/to/set-max-connections.cli -Dmaxconn=50