WebLogic Scripting Tool ガイド
![]() |
![]() |
![]() |
![]() |
以下の節では、WebLogic Scripting Tool について説明します。
WebLogic Scripting Tool (WLST) は、システム管理者やオペレータが、WebLogic Server インスタンスおよびドメインのモニタと管理に使用する、コマンドライン スクリプト インタフェースです。WLST スクリプト環境は、Java のスクリプト インタプリタである、Jython に基づいています。WebLogic スクリプト関数に加えて、ローカル変数、条件変数、フロー制御文など、インタプリタ言語の一般的な機能を使用できます。WebLogic Server の開発者および管理者は、Jython 言語構文に従って、環境上の要件を満たすよう WebLogic スクリプト言語を拡張できます。http://www.jython.org
を参照してください。
WLST 機能には、次の WebLogic Server コマンドライン ユーティリティの機能が含まれます。MBeans を照会して WebLogic Server インスタンスをコンフィグレーションするのに使用する weblogic.Admin
ユーティリティ (本リリースの WebLogic Server では非推奨)、WebLogic Server のコンフィグレーションを変更するための wlconfig
Ant タスク ツール、およびアプリケーションをデプロイするための weblogic.Deployer
ユーティリティです。これらのコマンドライン ユーティリティの詳細については、以下を参照してください。
ドメインの作成、コンフィグレーション、および管理には、WLST、コマンドライン ユーティリティ、および Administration Console を互換的に使用できます。どの方法を選択するかは、グラフィカル インタフェースとコマンドライン インタフェースのどちらを使用するか、およびスクリプトを使ってタスクを自動化できるかどうかによって決まります。「スクリプト モード」を参照してください。
スクリプト ツールは、オンライン (実行中の管理サーバまたは管理対象サーバのインスタンスに接続された状態) でも、オフライン (実行中のサーバに接続されていない状態) でも使用できます。WLST オンラインおよびオフライン コマンドについては、「WLST オンラインおよびオフライン コマンドの概要」を参照してください。
オンラインでは、WLST は JMX を通じて管理できる基底のリソース用に管理インタフェースを提供する Java オブジェクトである、管理対象 Bean (MBean) に、簡単にアクセスできます。WLST は JMX クライアントであり、WLST をオンライン使用して実行できるすべてのタスクは、JMX を使用してプログラム的にも実行できます。
JMX を使用した WebLogic Server リソースの管理については、『JMX によるカスタム管理ユーティリティの開発』を参照してください。
WLST が管理サーバ インスタンスに接続されると、スクリプト ツールにより、MBean 間を移動して照会を行い、サーバにコンフィグレーション データを供給できるようになります。管理対象サーバ インスタンスに接続された WLST の機能は、MBean の階層を参照することだけに制限されます。
WLST を、管理対象サーバ上の MBean の値の変更に使用することはできませんが、管理 API でそれを行うことは可能です。管理サーバ上の MBean のコンフィグレーション値のみを変更することをお勧めします。管理対象サーバ上の MBean の値を変更すると、ドメイン コンフィグレーションに矛盾が生じる可能性があります。
WLST オフラインを使用すると、実行中の WebLogic Server に接続しないで、コンフィグレーション ウィザードと同じ機能をサポートしながら、新しいドメインを作成し、既存のドメインを更新できます。
オフラインの場合、WLST では、永続化されたコンフィグレーション情報にのみアクセスできます。新しいコンフィグレーション情報を作成して、ドメイン コンフィグレーション ファイル (config
ディレクトリ内にある、たとえば config.xml
) または Template Builder を使用して作成されるドメイン テンプレート JAR に永続化される、既存のコンフィグレーション情報を取得および変更できます。
注意 : WLST オフラインでアクセスおよび更新できるのは、コンフィグレーション ファイル内にあるコンフィグレーション オブジェクトのみなので、XML 要素としてコンフィグレーション ファイル内に既に永続化されていないコンフィグレーション オブジェクトの属性値を表示したり変更したりするには、まずコンフィグレーション オブジェクトを作成する必要があります。
WLST はコマンド プロンプトから一度に 1 つずつ入力される対話形式、またはファイル (スクリプト) で入力されるか、Java コードに埋め込まれるバッチ形式で、コマンドを解釈する、コマンドライン インタプリタです。各操作モードは、WLST コマンドを発行する方法を表します。
コマンドを入力すると応答がコマンドライン プロンプトに表示される対話モードは、スクリプトを構築する前にツールについて学習したり、コマンド構文を試作したり、コンフィグレーション オプションを確認したりするのに役立ちます。対話形式による WLST の使用は、特にコンフィグレーションに重大な変更を加えた後、即座にフィードバックを取得するのに有用です。WLST スクリプト シェルは、WebLogic Server のインスタンスとの永続的な接続を維持します。永続的な接続は、ユーザ セッション全体を通して維持されるため、サーバに対して実行される複数の手順をキャプチャできます。「ユーザの対話の記録」を参照してください。
加えて、WebLogic Server インスタンスに対して入力した各コマンドは、確立済みの同一接続を使用するので、ユーザの再認証や別個の JVM の必要なしに、コマンドを実行できます。
スクリプトは、シェル スクリプトと同様に、ユーザからの入力を必要とすることなく WLST コマンドのシーケンスを呼び出します。スクリプトには、WLST コマンドが拡張子 .py
の付いたテキスト ファイル (たとえば、filename
.py
) として含まれます。スクリプトを実行するには、スクリプト ファイルを Jython コマンドと共に使用します。「スクリプトの実行」を参照してください。
WLST スクリプトを使用すると、次のようなことができます。
コード リスト 2-1 では、WLST は実行中の管理サーバ インスタンスに接続し、10 個の管理対象サーバと 2 つのクラスタを作成し、サーバをクラスタに割り当てます。
管理サーバのユーザ名、パスワード、および URL を含むようにスクリプトを編集し、このスクリプトを実行する前にサーバを起動します。「スクリプトの実行」を参照してください。
from java.util import *
from javax.management import *
import javax.management.Attribute
print 'starting the script ....'
connect('username
','password
','t3://localhost:7001
')
clusters = "cluster1","cluster2"
ms1 = {'managed1':7701,'managed2':7702,'managed3':7703, 'managed4':7704, 'managed5':7705}
ms2 = {'managed6':7706,'managed7':7707,'managed8':7708, 'managed9':7709, 'managed10':7710}
clustHM = HashMap()
edit()
startEdit()
for c in clusters:
print 'creating cluster '+c
clu = create(c,'Cluster')
clustHM.put(c,clu)
cd('..\..')
clus1 = clustHM.get(clusters[0])
clus2 = clustHM.get(clusters[1])
for m, lp in ms1.items():
managedServer = create(m,'Server')
print 'creating managed server '+m
managedServer.setListenPort(lp)
managedServer.setCluster(clus1)
for m1, lp1 in ms2.items():
managedServer = create(m1,'Server')
print 'creating managed server '+m1
managedServer.setListenPort(lp1)
managedServer.setCluster(clus2)
save()
activate(block="true")
disconnect()
print 'End of script ...'
exit()
組み込みモードでは、Java コード内で WLST インタプリタのインスタンスをインスタンス化し、それを使って WLST コマンドおよびスクリプトを実行します。対話モードおよびスクリプト モードで使用する WLST コマンドおよび変数はすべて、組み込みモードで実行可能です。
コード リスト 2-2 は、WLST インタプリタのインスタンスをインスタンス化し、それを使用して実行中のサーバに接続し、2 つのサーバを作成し、それらをクラスタに割り当てる方法を示します。
コード リスト 2-2 Java クラスからの WLST の実行
package wlst;
import java.util.*;
import weblogic.management.scripting.utils.WLSTInterpreter;
import org.python.util.InteractiveInterpreter;
/**
* WLST を実行中のサーバに接続し、2 つのサーバを作成し、それらを新しく
* 作成されたクラスタに割り当てて終了する、単純な組み込み WLST 例。
* <p>Title: EmbeddedWLST.java</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: BEA Systems</p>
* @author Satya Ghattu (sghattu@bea.com)
*/
public class EmbeddedWLST
{
static InteractiveInterpreter interpreter = null;
EmbeddedWLST() {
interpreter = new WLSTInterpreter();
}
private static void connect() {
StringBuffer buffer = new StringBuffer();
buffer.append("connect('weblogic','weblogic')");
interpreter.exec(buffer.toString());
}
private static void createServers() {
StringBuffer buf = new StringBuffer();
buf.append(startTransaction());
buf.append("man1=create('msEmbedded1','Server')\n");
buf.append("man2=create('msEmbedded2','Server')\n");
buf.append("clus=create('clusterEmbedded','Cluster')\n");
buf.append("man1.setListenPort(8001)\n");
buf.append("man2.setListenPort(9001)\n");
buf.append("man1.setCluster(clus)\n");
buf.append("man2.setCluster(clus)\n");
buf.append(endTransaction());
buf.append("print `Script ran successfully ...'\n");
interpreter.exec(buf.toString());
}
private static String startTransaction() {
StringBuffer buf = new StringBuffer();
buf.append("edit()\n");
buf.append("startEdit()\n");
return buf.toString();
}
private static String endTransaction() {
StringBuffer buf = new StringBuffer();
buf.append("save()\n");
buf.append("activate(block='true')\n");
return buf.toString();
}
public static void main(String[] args) {
new EmbeddedWLST();
connect();
createServers();
}
}
以下の節では、WLST を設定および使用するための手順の概要を示します。
java -Dweblogic.security.SSL.ignoreHostnameVerification=true -Dweblogic.security.TrustKeyStore=DemoTrust weblogic.WLST
詳細については、「WLST オフラインを使用した WebLogic ドメインの作成とコンフィグレーション」を参照してください。
WLST オンラインを使用するには、WebLogic Server インスタンスを起動し (「サーバの起動と停止」を参照)、connect
コマンドを使用して WLST をサーバに接続します。
wls:/(offline)> connect('
username
','
password
','
t3s://localhost:7002
')
Connecting to weblogic server instance running at t3s://localhost:7002 as username weblogic ...
Successfully connected to Admin Server 'myserver' that belongs to domain 'mydomain'.
注意 : WLST のサーバへの接続は、SSL ポートまたは管理ポートを介して行うことを強くお勧めします。そうしなかった場合は、以下の警告メッセージが表示されます。
Warning: An insecure protocol was used to connect to the server.
To ensure on-the-wire security, the SSL port or Admin port should be used instead.
connect
コマンドの詳細については、「connect」を参照してください。
WLST コマンドを入力する際は、次のルールに従います。また、「WLST コマンドおよび変数リファレンス」と「WLST オンラインおよびオフライン コマンドの概要」も参照してください。
'newServer'
または "newServer"
。\
) を指定したときには、引用符で囲んだ文字列の前に r を付けて、その文字列を生の形で解釈するよう WLST に指示し、バックスラッシュが確実にそのまま受け付けられるようにする。この形式は、標準的な Jython 構文である。たとえば、以下のようになる。
readTemplate(r'c:\mytemplate.jar')
.
)、フォワード スラッシュ (/
) またはバックスラッシュ (\
) は、無効。 help
コマンドを入力する。「ヘルプの表示」を参照。WLST には、スクリプトの実行をサポートする 2 つの Jython 関数が組み込まれています。
java weblogic.WLST
filePath
.py
このコマンドは、WLST の呼び出しとスクリプト ファイルの実行を、これ 1 つで行います。「WLST を呼び出してスクリプトを実行する」を参照してください。
execfile(
filePath
.py)
このコマンドは、WLST の呼び出し後にスクリプト ファイルを実行します。「WLST からスクリプトを実行する」を参照してください。
このガイドに記載のサンプル スクリプトを実行するには、コマンドをコピーして、拡張子を .py
としたテキスト ファイル (たとえば filename
.py
) に保存します。このテキスト ファイルを、以下に挙げるスクリプトを実行するためのコマンドと共に使用します。script
.py
ファイルを最初から作成する場合のテンプレートとして使用できるサンプル スクリプトがあります。詳細については、「WLST サンプル スクリプト」を参照してください。
スクリプトで、実行中のサーバ インスタンスに WLST を接続する場合は、スクリプト実行前に WebLogic Server を起動します。
以下のコマンドは、WLST を呼び出し、指定されたスクリプトを実行し、WLST スクリプト シェルを終了します。WLST の終了を回避するには、-i
フラグを使用します。
java weblogic.WLST
filePath
.py
java weblogic.WLST -i filePath
.py
注意 : wlstProfile.py
という WLST スクリプトが、WLST を呼び出すディレクトリ内、または user.home
(JVM によって決定されるオペレーティング システムのユーザ アカウントのホーム ディレクトリ) 内に存在する場合、コマンドは WLST が呼び出されると自動的に実行されます。この場合は、コマンドラインで WLST スクリプト ファイルの名前を指定する必要はありません。
c:\>
java weblogic.WLST c:/temp/example.py
Initializing WebLogic Scripting Tool (WLST) ...
starting the script ...
...
WLST 呼び出し後に、指定されたスクリプトを実行するには、次のコマンドを使用します。
execfile(filePath
)
c:\>
java weblogic.WLST
Initializing WebLogic Scripting Tool (WLST) ...
...
...
wls:/(offline)>execfile('c:/temp/example.py')
starting the script ...
...
上級ユーザは、WLST を Jython モジュールとして WebLogic Server からインポートできます。WLST のインポート後は、それを他の Jython モジュールと共に使用し、Jython 構文で直接 Jython コマンドを呼び出せます。
主な手順としては、WLST 定義およびメソッド宣言の .py
ファイルへの変換、Jython モジュールへの WLST ファイルのインポート、インポートされたファイルからの WLST の参照などです。
Jython モジュールとして WLST をインポートするには、次の手順に従います。
wl.connect('username','password')
....
注意 : WLST を Jython モジュールとして使用する場合、ブロック引数を持つすべての WLST コマンドで、ブロックは常に true に設定され、コマンドが完了するまで WLST がユーザの対話をブロックすることが指定されます。「WLST コマンドおよび変数リファレンス」を参照してください。
wls:/mydomain/serverConfig>exit()
Exiting WebLogic Scripting Tool ...
c:\>
wlst
Ant タスクは、WebLogic Server に同梱されているバージョンの Ant において、あらかじめ定義されています。これを使用すると、Ant ビルド ファイル内から WLST スクリプトを実行できます。
注意 : 独自にインストールした Ant でこのタスクを使用する場合は、ビルド ファイルに次のタスク定義を追加します。
<taskdef name="wlst" classname="weblogic.ant.taskdefs.management.WLSTTask" />
Ant スクリプトから WLST を実行するには、次の手順に従います。
WL_HOME
\server\bin
ディレクトリにある setWLSEnv.cmd
コマンドを実行します。WL_HOME
は、インストールされている WebLogic Server の最上位ディレクトリです。WL_HOME
/server/bin
ディレクトリにある setWLSEnv.sh
コマンドを実行します。WL_HOME
は、インストールされている WebLogic Server の最上位ディレクトリです。
<target name="runwlst">
<wlst fileName="./myscript.py" executeScriptBeforeFile="true"
debug="false" failOnError="false">
<script>
connect('weblogic','weblogic','t3://localhost:7001')
</script>
</wlst>
</target>
wlst
Ant タスクを使用すると、fileName
属性を使用して WLST スクリプト内の WLST コマンドを指定したり、ビルド ファイルの <script>
タグ内に、WLST スクリプト コマンドを埋め込んだりすることができます。Ant タスク コマンド構文の詳細については、「wlst Ant タスクの構文」を参照してください。
prompt> ant runwlst
<wlst propertiesFile="propsFile
" fileName="fileName
" arguments="arglist
" failOnError="value
" executeScriptBeforeFile="value
" debug="value
">
<script>wlst-commands
</script>
WLST スクリプト (.py
) ファイル内で WLST コマンドを指定し、そのファイルを fileName
属性を使用して指定したり、ビルド ファイル内で WLST スクリプト コマンドを、<script>
タグで囲んで埋め込んだりすることができます。
次の表では、wlst
Ant タスクの一部として指定できる Ant タスク属性を定義しています。
次の例では、createServer
ターゲットが、以下の処理を行います。
t3://localhost():7001
のサーバに接続、コンフィグレーションを編集して新しいサーバを作成、コンフィグレーションの変更を保存およびアクティブ化 (executeScriptBeforeFile
は true
に設定されているため、埋め込まれたスクリプトが、指定された WLST スクリプト ファイルよりも先に実行されます)。myscript.py
を実行。sys.argv
変数を使用してアクセス可能です。wlst
Ant タスクの実行が失敗しても、failOnError="false" 設定に従って実行を続行。
<target name="configServer">
<wlst debug="false" failOnError="false" executeScriptBeforeFile="true"
fileName="./myscript.py">
<script>
connect('weblogic','weblogic','t3://localhost:7001')
</script>
</wlst>
</target>
myscript.py
を実行 (executeScriptBeforeFile
は false
に設定されているため、WLST スクリプト ファイルが、埋め込まれたスクリプトよりも先に実行されます)。t3://localhost():7001
のサーバに接続し、ドメイン内のサーバのリストにアクセスしてそれを出力。wlst
タスクの実行が失敗すると、failOnError="true
"の設定に従ってビルドの失敗をもたらす。
<target name="loop">
<wlst debug="true" executeScriptBeforeFile="false"
fileName="./myscript.py" failOnError="true">
<script>
print 'In the target loop'
connect('weblogic','weblogic','t3://localhost:7001')
svrs = cmo.getServers()
print 'Servers in the domain are'
for x in svrs: print x.getName()
</script>
</wlst>
</target>
次の例では、error
ターゲットが、以下の処理を行います。
thisWillCauseNameError
を出力。thisWillCauseNameError
変数が存在せず、wlst
Ant タスクの実行が失敗しても、failOnError="false
" 設定に従って実行を続行。
<target name="error">
<wlst debug="true" failOnError="false">
<script>print thisWillCauseNameError</script>
</wlst>
</target>
WLST のコマンドおよび変数に関する情報を表示するには、help
コマンドを入力します。
引数なしで help
コマンドを指定すると、WLST はコマンドのカテゴリの概要を示します。特定のコマンド、変数、またはコマンド カテゴリの情報を表示するには、help
コマンドに対する引数として、その名前を指定します。すべてのオンラインまたはオフライン コマンドの概要をコマンドラインからリスト表示するには、それぞれ以下のコマンドを使用します。
help('online')
help('offline')
help
コマンドは、クエリをサポートします。たとえば、help('get*')
とすると、get
で始まるすべてのコマンドについての構文および使い方の情報が表示されます。
たとえば、disconnect
コマンドの情報を表示するには、次のコマンドを入力します。
wls:/mydomain/serverConfig>
help('disconnect')
Description:
Disconnect from a weblogic server instance.
Example:
wls:/mydomain/serverConfig> disconnect()
すべての WLST コマンド入力の記録を開始および停止するには、次のように入力します。
startRecording(
recordFilePath
,[recordAll])
stopRecording()
startRecording
コマンドを入力する際には、WLST コマンドを格納するためのファイルのパス名を指定する必要があります。また必要に応じて、すべてのユーザの対話をキャプチャするのか、WLST コマンドだけをキャプチャするのかを指定できます。recordAll
引数のデフォルトは、false です。
たとえば、record.py
ファイルに WLST コマンドを記録する場合は、次のコマンドを入力します。
wls:/mydomain/serverConfig>
startRecording('c:/myScripts/record.py')
詳細については、「startRecording」および「stopRecording」を参照してください。
WLST 出力のファイルへのリダイレクトを開始および停止するには、次のように入力します。
redirect(
outputFile
,[toStdOut])
stopRedirect()
WLST 出力のリダイレクト先とするファイルのパス名を指定する必要があります。また必要に応じて、WLST 出力を stdout
に送信するかどうかを指定できます。toStdOut
引数のデフォルトは true です。
たとえば、WLST 出力を現在のディレクトリにある logs/wlst.log
ファイルにリダイレクトし、出力の stdout
への送信を無効化する場合は、次のコマンドを入力します。
wls:/mydomain/serverConfig>redirect('./logs/wlst.log', 'false')
詳細については、「redirect」および「stopRedirect」を参照してください。
既存のサーバ コンフィグレーション (config
ディレクトリ) を実行可能な WLST スクリプトに変換するには、次のように入力します。
configToScript([domainDir
], [scriptPath
], [overwrite
], [propertiesFile
], [deploymentScript
])
./config
)./config/config.py
)true
)scriptPath
について指定されたパス名)false
) 注意 : configToScript()
は、暗号化された属性を保持する補助的なユーザ コンフィグレーション ファイルおよびユーザ キー ファイルを作成します。
その結果得られたスクリプトは、他のサーバ上のリソースの再作成に使用できます。生成されたスクリプトを実行する前に、環境に適した値を指定するようにプロパティ ファイルを更新する必要があります。生成されたスクリプトを実行すると、次の処理が行われます。
たとえば、次のコマンドは c:/bea/user_projects/domains/mydomain
にあるドメインから WLST スクリプトを作成し、それを c:/bea/myscripts
に保存します。
wls:/(offline)>
configToScript('c:/bea/user_projects/domains/mydomain',
'c:/bea/myscripts')
詳細については、「configToScript」を参照してください。
デフォルトでは WL_HOME
/common/wlst
にある WLST ホーム ディレクトリを使用して、WLST をカスタマイズできます。WL_HOME
は、WebLogic Server の最上位インストール ディレクトリを表します。WLST ホーム ディレクトリ内で定義されている Python スクリプトはすべて、WLST 起動時にインポートされます。
注意 : デフォルトの WLST ホーム ディレクトリは、コマンドライン上で次の引数を渡すことで、カスタマイズできます。-Dweblogic.wlstHome=<
another-directory
>
次の表では、WLST をカスタマイズする方法について説明します。
|
|
|
|
|
|
|
|
![]() ![]() |
![]() |
![]() |