![]() ![]() ![]() ![]() |
WebLogic Scripting Tool (WLST) は、WebLogic Server ドメインの作成、管理、およびモニタに使用できるコマンドライン スクリプト環境です。この環境は、Java のスクリプト インタプリタである Jython に基づいています。WLST では、ローカル変数、条件変数、フロー制御文など、標準の Jython 機能に加え、WebLogic Server に固有の一連のスクリプト機能 (コマンド) を使用できます。WebLogic のスクリプト言語は、Jython の言語構文に従って個々のニーズに合わせて拡張できます。http://www.jython.org
を参照してください。
以下の節では、WebLogic Scripting Tool について説明します。
WLST は、WebLogic Server Administration Console に相当するコマンドライン (WLST オンライン) として、またはコンフィグレーション ウィザードに相当するコマンドライン (WLST オフライン) として使用できます。WebLogic Server Administration Console については、Administration Console オンライン ヘルプを参照してください。コンフィグレーション ウィザードについては、『コンフィグレーション ウィザードを使用した WebLogic ドメインの作成』を参照してください。
WLST を使用して実行中の管理サーバに接続し、アクティブなドメインのコンフィグレーションの管理、ドメイン内のリソースに関するパフォーマンス データの参照、またはセキュリティ データの管理 (ユーザの追加、削除など) を実行できます。WLST を使用して管理対象サーバにも接続できますが、管理対象サーバのコンフィグレーション データは変更できません。
WLST オンラインは Java Management Extensions (JMX) クライアントです。WLST オンラインでは、基底のリソース用に管理インタフェースを提供する Java オブジェクトである、管理対象 Bean (MBean) のサーバのメモリ内コレクションと対話します。WebLogic Server MBean については、『JMX によるカスタム管理ユーティリティの開発』の「WebLogic Server MBean について」を参照してください。
WLST を使用すると、実行中の WebLogic Server インスタンスに接続せずに、ドメイン テンプレートの作成、既存のテンプレートに基づいた新しいドメインの作成、または既存のアクティブでないドメインの拡張を実行できます。WLST オフラインでは、ドメイン内のリソースに関するパフォーマンス データを参照したり、セキュリティ データを変更 (ユーザの追加、削除など) したりすることはできません。
WLST オフラインでは、Template Builder を使用して作成したドメイン テンプレート JAR 内、またはドメインの config
ディレクトリ内に永続化されているコンフィグレーション データへの読み書きアクセスが可能です。ドメインのコンフィグレーション ドキュメントについては、「BEA WebLogic 10.0 リファレンス」に示している『Domain Configuration Schema Reference』、およびその他のスキーマ リファレンス ドキュメントを参照してください。
WLST オフラインを使用する場合、コンフィグレーション データの変更に関する次の制限に注意してください。
Log
管理オブジェクトは表示されません。
WLST オフラインで表示されない管理オブジェクトの属性のデフォルト値を変更する場合、最初に create
コマンドを使用して管理オブジェクトを作成する必要があります。次に、cd
を使用して管理オブジェクトに移動し、属性値を変更します。「create」を参照してください。
WLST コマンドは、次の任意の方法で呼び出すことができます。
コマンドを入力すると応答がコマンドライン プロンプトに表示される対話モードは、スクリプトを構築する前にツールについて学習したり、コマンド構文を試作したり、コンフィグレーション オプションを確認したりするのに役立ちます。対話形式による WLST の使用は、特にコンフィグレーションに重大な変更を加えた後、即座にフィードバックを取得するのに有用です。WLST スクリプト シェルは、WebLogic Server のインスタンスとの永続的な接続を維持します。
WLST では、WLST セッション期間に入力されるすべてのコマンドをファイルに書き込むことができます。このファイルは、編集して、WLST スクリプトとして実行できます。詳細については、「startRecording」および「stopRecording」を参照してください。
スクリプトは、シェル スクリプトと同様に、ユーザからの入力を必要とすることなく WLST コマンドのシーケンスを呼び出します。スクリプトには、WLST コマンドが拡張子 .py
の付いたテキスト ファイル (たとえば、filename
.py
) として含まれます。スクリプトを実行するには、スクリプト ファイルを Jython コマンドと共に使用します。
WLST スクリプトを使用すると、次のようなことができます。
WebLogic Server でインストールされるサンプル スクリプトについては、「WLST サンプル スクリプト」を参照してください。
組み込みモードでは、Java コード内で WLST インタプリタをインスタンス化し、それを使って WLST コマンドおよびスクリプトを実行します。対話モードおよびスクリプト モードで使用する WLST コマンドおよび変数はすべて、組み込みモードで実行可能です。
コード リスト 2-1 は、WLST インタプリタをインスタンス化し、それを使用して実行中のサーバに接続し、2 つのサーバを作成し、それらをクラスタに割り当てる方法を示します。
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>
*/
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 では、WebLogic Security フレームワークを使用して、認可されていないユーザがドメインを変更したり、暗号化されたデータを参照することを防止しています。以下の節では、WLST のセキュリティ要件を満たすために行なう必要のある操作について説明します。
WLST を使用して WebLogic Server インスタンスに接続する場合、サーバ インスタンスには管理ポートを介して接続することが推奨されます。管理ポートは、ドメイン内のすべての WebLogic Server インスタンスが管理トラフィック用に使用できる特別で安全なポートです。
このポートはデフォルトで有効ではありませんが、プロダクション環境では有効にすることをお勧めします。アプリケーションのトラフィックと管理トラフィックを分離することによって、重要な管理操作 (サーバの起動と停止、サーバのコンフィグレーションの変更、およびアプリケーションのデプロイ) が、同じネットワーク接続上に存在する大量のアプリケーション トラフィックと競合することがなくなります。
管理ポートでは、すべての通信が SSL を使用して保護される必要があります。デフォルトでは、ドメイン内のすべてのサーバで、SSL 用のデモ用証明書ファイルが使用されますが、これらの証明書はプロダクション環境には適しません。
管理ポートのコンフィグレーションについては、『WebLogic Server 環境のコンフィグレーション』の「管理ポートと管理チャネル」を参照してください。
Weblogic Server ドメインは、ドメイン ディレクトリに保存される一群の XML ドキュメントにコンフィグレーション データを格納します。たとえば、これらのコンフィグレーション ドキュメントには、ドメイン内のデプロイされたリソース、リスン アドレス、および名前が記述されます。ドメイン内の 1 つまたは複数のサーバが実行されている場合、各サーバ インスタンスでは、コンフィグレーション データのメモリ内表現が、一群の管理対象 Bean (MBean) として維持されます。
独自のセキュリティ対策を使用し、認可されたユーザのみがファイル システムを介してドメインのコンフィグレーション ファイルにアクセスできるようにする必要があります。ファイル システムを介してドメインのコンフィグレーション ファイルにアクセスすることを認可されたユーザであれば、テキスト エディタ、WLST オフライン、またはその他のツールを使用してコンフィグレーション ファイルを編集できます。
WLST を使用して WebLogic Server の実行中のインスタンスに接続する場合、アクティブな WebLogic セキュリティ レルムで定義されているユーザの資格 (ユーザ名およびパスワード) を提供する必要があります。接続後は、一群のセキュリティ ポリシーによって、表示または変更できるコンフィグレーション属性が決まります (『WebLogic Server MBean リファレンス』の「Default Security Policies for MBeans」を参照)。
WLST の connect
コマンドを呼び出す場合、次のいずれかの方法でユーザの資格を提供できます。
例 :connect(`weblogic', `weblogic', `localhost:7001')
詳細については、「connect」を参照してください。
storeUserConfig
コマンドを使用して、暗号化された形式の資格が格納されたユーザ コンフィグレーション ファイル、およびその資格の復号化に使用されるキー ファイルを作成する。以降の WLST セッション (または WLST スクリプト) では、コマンドラインで資格を入力する代わりに、このファイルの名前を指定します。この方法は、WLST をスクリプト モードで使用している場合にお勧めします。スクリプト モードでは、暗号化されていないユーザの資格がスクリプトに格納されないためです。
たとえば、ユーザ コンフィグレーション ファイルおよびキー ファイルを作成するには、次のように指定します。connect(`weblogic', `weblogic', `localhost:7001')
storeUserConfig('c:/myFiles/myuserconfigfile.secure',
'c:/myFiles/myuserkeyfile.secure')
ユーザ コンフィグレーション ファイルおよびキー ファイルを使用するには、次のように指定します。connect('c:/myFiles/myuserconfigfile.secure',
'c:/myFiles/myuserkeyfile.secure')
詳細については、「connect」および「storeUserConfig」を参照してください。
boot.properties
ファイルが格納されているディレクトリから connect
コマンドを呼び出す。デフォルトでは、管理サーバを作成すると、WebLogic Server は資格を暗号化し、暗号化した資格を boot.properties
ファイルに格納します。ドメイン ディレクトリから WLST を起動した場合にのみ、WLST でこのファイルが使用されます。
たとえば、ドメインの boot.properties
ファイルを削除していない場合、WLST を起動して、connect コマンドを次のように呼び出すことができます。c:\mydomain\> java weblogic.WLST
wls:/offline> connect()
詳細については、「connect」を参照してください。
WebLogic Server ドメインのコンフィグレーションの一部の属性は、機密データへの権限のないアクセスを防ぐために暗号化されます。たとえば、JDBC データソースで RDBMS への接続に使用されるパスワードは暗号化されます。
属性値は、暗号化された文字列としてドメインのコンフィグレーション ドキュメントに保存されます。この値は、実行中のサーバ インスタンスでは、暗号化されたバイト配列形式の MBean 属性として使用できます。暗号化されている属性は、名前が Encrypted で終わります。たとえば ServerMBean では、IIOP プロトコルを介したアクセスの保護に使用されるパスワードが DefaultIIOPPasswordEncrypted
という名前の属性としてエクスポーズされます。
set
コマンドに渡す。次に例を示します。set(`DefaultIIOPPasswordEncrypted', `mypassword')
WLST は、この文字列を暗号化し、暗号化された値をドメインのコンフィグレーション ファイルに書き込みます。
詳細については、「set」を参照してください。
ls
コマンドを使用して管理属性を表示すると、WLST オフラインでは、暗号化属性の値としてアスタリスクが返されます。get
コマンドを使用すると、WLST オフラインでは、アスタリスクを表すバイト配列が返されます。
次に ls コマンドを使用した例を示します。wls:/offline/wl_server/Server/examplesServer>ls()
returns...
-rw- DefaultIIOPPasswordEncrypted ********
...
次に get コマンドを使用した例を示します。wls:/offline/wl_server/Server/examplesServer>get('DefaultIIOPPasswordEncrypted')
returnsarray([42, 42, 42, 42, 42, 42, 42, 42], byte)
WLST オンラインでは、各暗号化属性について、MBean には暗号化されていないバージョンも格納されます。たとえば、ServerMBean には、暗号化された値を格納する DefaultIIOPPasswordEncrypted
という名前の属性と、暗号化されていないバージョンの値を格納する DefaultIIOPPassword
という名前の属性が格納されます。
WLST オンラインで暗号化された値を読み書きするには、次のようにします。
set
コマンドに渡す。次に例を示します。set(`DefaultIIOPPassword', `mypassword')
set(`DefaultIIOPPasswordEncrypted', encrypt(`mypassword'))
警告 : | 暗号化されていない文字列を暗号化属性に渡さないでください。暗号化属性では、渡される値がすでに暗号化されていることを前提としています。 |
編集をアクティブ化すると、WebLogic Server によって、暗号化された値がドメインのコンフィグレーション ファイルに書き込まれます。
get
コマンドに渡す。次に例を示します。
get('DefaultIIOPPasswordEncrypted')
returnsarray([105, 114, 111, 110, 115, 116, 101, 101, 108], byte)
get
コマンドに渡す。次に例を示します。get('DefaultIIOPPassword')
returnsmypassword
セキュリティ グループ、セキュリティ ロール、および WebLogic Server ユーザのユーザ名およびパスワードは、ドメインの XML コンフィグレーション ドキュメントには格納されません。その代わりに、ドメインでは、認証プロバイダと呼ばれる別のソフトウェア コンポーネントを使用し、セキュリティ データの格納や転送、およびセキュリティ データへのアクセスの提供を行います。認証プロバイダは、さまざまな種類のシステムを使用してセキュリティ データを格納することができます。WebLogic Server でインストールされる認証プロバイダでは、組み込み LDAP サーバが使用されます。
WLST オフラインを使用してドメイン テンプレートを作成する際、WLST では、認証プロバイダのデータ ストアと残りのドメイン ドキュメントがパッケージ化されます。ドメイン テンプレートからドメインを作成すると、新しいドメインは、ドメイン テンプレートから認証プロバイダのデータ ストアの完全なコピーを取得します。
WLST オフラインを使用して認証プロバイダのデータ ストアのデータを変更することはできません。
ただし、WLST オンラインを使用すると、認証プロバイダと対話して、ユーザ、グループおよびロールを追加、削除または変更できます。詳細については、「セキュリティ データの管理 (WLST オンライン)」を参照してください。
以下の節では、WLST を設定および使用するための手順の概要を示します。
CLASSPATH
環境変数に、WL_HOME
\server\bin
を PATH
環境変数に追加します。WL_HOME
は、WebLogic Server の最上位インストール ディレクトリを表します。
WL_HOME
\server\bin\setWLSEnv
スクリプトを使用すると、両方の変数を設定できます。
Windows の場合は、[スタート] メニューのショートカットで環境変数を設定し、WLST を呼び出します ([Tools|WebLogic Scripting Tool])。
WLST を呼び出すには、次の構文を使用します (コマンドのオプションについては、表 2-1 を参照)。
java
[ -Dweblogic.security.SSL.ignoreHostnameVerification=true
-Dweblogic.security.TrustKeyStore=DemoTrust ]
weblogic.WLST
[ -loadProperties propertyFilename
]
[ [-i] filePath
.py ]
|
|||
|
スクリプト モードで WLST を使用するには、次のように指定します。java weblogic.WLST c:\myscripts\myscript.py
SSL リスン ポートおよびデモ用の証明書を使用する WebLogic Server インスタンス上で WLST スクリプトを実行するには、次のように指定します。java -Dweblogic.security.SSL.ignoreHostnameVerification=true
-Dweblogic.security.TrustKeyStore=DemoTrust weblogic.WLST
c:\myscripts\myscript.py
対話モードで WLST を使用するには、次のように指定します。java weblogic.WLST
対話モードで WLST を起動した後で WebLogic Server インスタンスに接続するには、次のように指定します。wls:/offline> connect('weblogic','weblogic','localhost:7001')
WLST を終了するには、exit()
コマンドを入力します。
wls:/mydomain/serverConfig>exit()
Exiting WebLogic Scripting Tool ...
c:\>
WLST のコマンドを入力、またはスクリプトに記述する際は、次の構文を使用します。
'newServer'
または "newServer"
。\
) を使用する場合は、そのバックスラッシュに別のバックスラッシュを前置するか、小文字の r
を文字列全体の先頭に配置する。この \ または r
を指定すると、Jython によってバックスラッシュが特殊文字として解釈されなくなります。
たとえば、バックスラッシュが含まれるファイル パス名を指定する際、次のように指定します。
readTemplate('c:\\userdomains\\mytemplates\\mytemplate.jar')
、またはreadTemplate(r'c:\userdomains\mytemplates\mytemplate.jar')
.
)、フォワードスラッシュ (/
) またはバックスラッシュ (\
) は無効。
名前の中にフォワードスラッシュ (/
) が含まれる管理オブジェクトに対して cd
を実行する必要がある場合、そのオブジェクト名を括弧で囲みます。次に例を示します。
WLST の情報、エラー、およびデバッグに関する各メッセージを標準出力からファイルにリダイレクトするには、次のように指定します。
redirect(
outputFile
,[toStdOut])
stopRedirect()
このコマンドでは、dumpStack()
および dumpVariables()
コマンドの出力もリダイレクトされます。
たとえば、WLST 出力を、WLST を起動したディレクトリ下の logs/wlst.log
ファイルにリダイレクトするには、次のコマンドを指定します。
wls:/mydomain/serverConfig> redirect('./logs/wlst.log')
詳細については、「redirect」および「stopRedirect」を参照してください。
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()
WebLogic Server では、Ant ビルド ファイルから WLST スクリプトを呼び出すカスタム Ant タスク wlst
を使用できます。WLST スクリプト ファイル (.py
) を作成し、このタスクを使用してスクリプト ファイルを呼び出すことができます。または、WLST スクリプトをこのタスク内のネストした要素に作成できます。
Ant の詳細については、『Apache Ant User Manual』を参照してください。
wlst
タスクは、WebLogic Server にインストールされているバージョンの Ant であらかじめ定義されています。このバージョンの Ant を現在のビルド環境に追加するには、次のスクリプトを実行します。WL_HOME
\server\bin\setWLSEnv.cmd
(または、UNIX では setWLSEnv.sh
)
ここで、WL_HOME
は、WebLogic Server のインストール ディレクトリです。
独自にインストールした Ant で wlst
タスクを使用する場合は、ビルド ファイルに次のタスク定義を追加します。
<taskdef name="wlst"
classname="weblogic.ant.taskdefs.management.WLSTTask" />
表 2-2 に、<wlst>
要素の属性として指定する wlst
タスクのパラメータを示します。
以下の節では、<wlst>
要素のネストした要素として指定する wlst
タスクのパラメータについて説明します。
WLST スクリプトを格納します。この要素は、スクリプト ファイルの名前を付けるのに fileName 属性を使用しない場合に必要です。
クラスパスに追加するクラスを指定します。この要素は、クラスパスにまだ存在しないクラスがスクリプトで必要な場合に使用します。
この要素は、標準の Ant classpath
要素です。クラスパスに追加するディレクトリおよびファイルを指定するネスト要素、またはビルド ファイルの任意の場所で定義した path
要素への参照を指定できます。『Apache Ant User Manual』の「Path-like Structures」を参照してください。
次の例では、createServer
ターゲットが、以下の処理を行います。
script
要素のスクリプトを実行する。このスクリプトは、ドメインの管理サーバ (t3://localhost:7001
) に接続する (executeScriptBeforeFile
は true
に設定されているため、指定した WLST スクリプト ファイルよりも先に呼び出される)。fileName
属性で指定したスクリプト ファイル myscript.py
を実行する。スクリプト ファイルは、Ant を起動したディレクトリにある。このようなファイルを使用して、編集セッションの開始、新しいサーバの作成、コンフィグレーションの変更の保存およびアクティブ化を実行可能。sys.argv
変数を使用してアクセス可能。wlst
Ant タスクの実行が失敗しても、failOnError="false" 設定に従って実行を続行。<target name="configServer">
<wlst debug="false" failOnError="false" executeScriptBeforeFile="true"
fileName="./myscript.py">
<classpath>
<pathelement location="${my.classpath.dir}"/>
</classpath>
<script>
connect('weblogic','weblogic','t3://localhost:7001')
</script>
</wlst>
</target>
myscript.py
を実行する (executeScriptBeforeFile
は false
に設定されているため、WLST スクリプト ファイルが、埋め込まれたスクリプトよりも先に実行される)。t3://localhost:7001
のサーバに接続し、ドメイン内のサーバのリストにアクセスしてそれを出力する。wlst
タスクの実行が失敗すると、failOnError="true
"の設定に従ってビルドの失敗をもたらす。<path id="my.classpath">
<pathelement location="${my.classpath.dir}"/>
</path>
<target name="loop">
<wlst debug="true" executeScriptBeforeFile="false"
fileName="./myscript.py" failOnError="true">
<classpath>
<pathelement location="${my.classpath.dir}"/>
</classpath>
<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
ターゲットが、以下の処理を行います。
上級ユーザは、WLST を Jython モジュールとして WebLogic Server からインポートできます。WLST のインポート後は、それを他の Jython モジュールと共に使用し、Jython 構文で直接 Jython コマンドを呼び出せます。
主な手順としては、WLST 定義およびメソッド宣言の .py
ファイルへの変換、Jython モジュールへの WLST ファイルのインポート、インポートされたファイルからの WLST の参照などです。
Jython モジュールとして WLST をインポートするには、次の手順に従います。
c:\>
java weblogic.WLST
wls:/(offline)>
.py
ファイルに変換するには、writeIniFile
コマンドを使用します。
wls:/(offline)>
writeIniFile("wl.py")
The Ini file is successfully written to wl.py
wls:/(offline)>
c:\>
java org.python.util.jython
Jython パッケージ マネージャが、クラスパス内の JAR ファイルを処理します。Jython プロンプトが表示されます。
import
コマンドを使用して、Jython モジュールに WLST モジュールをインポートします。
wl.connect('username','password')
....
注意 : | WLST を Jython モジュールとして使用する場合、ブロック引数を持つすべての WLST コマンドで、ブロックは常に true に設定され、コマンドが完了するまで WLST がユーザの対話をブロックすることが指定されます。「WLST コマンドおよび変数リファレンス」を参照してください。 |
デフォルトでは WL_HOME
/common/wlst
にある WLST ホーム ディレクトリを使用して、WLST をカスタマイズできます。WL_HOME
は、WebLogic Server の最上位インストール ディレクトリを表します。WLST ホーム ディレクトリ内で定義されている Python スクリプトはすべて、WLST 起動時にインポートされます。
注意 : | デフォルトの WLST ホーム ディレクトリは、コマンドライン上で次の引数を渡すことで、カスタマイズできます。-Dweblogic.wlstHome=< another-directory > |
次の表では、WLST をカスタマイズする方法について説明します。
|
![]() ![]() ![]() |