CLIファイルで変数を使う

平田です。

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です