2 WebLogic Scripting Toolの使用
WLSTオンラインまたはオフラインの使用
WLSTは、WebLogic Server管理コンソールに相当するコマンドライン(WLSTオンライン)として、または構成ウィザードに相当するコマンドライン(WLSTオフライン)として使用できます。
次の項では、WLSTオンラインおよびオフラインを使用する方法について説明します。
WLSTオンラインの使用
WLSTを使用して実行中の管理サーバーに接続し、アクティブなWebLogicドメインの構成の管理、ドメイン内のリソースに関するパフォーマンス・データの参照、またはセキュリティ・データの管理(ユーザーの追加、削除など)を実行できます。WLSTを使用して管理対象サーバーにも接続できますが、管理対象サーバーの構成データは変更できません。
WLSTオンラインはJava Management Extensions (JMX)クライアントです。それは、基盤となるリソース用に管理インタフェースを提供するJavaオブジェクトである、管理対象Bean (MBean)のサーバーのメモリー内コレクションと対話します。WebLogic Server MBeanについては、『Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発』のWebLogic Server MBeanの理解に関する項を参照してください。
WLSTオフラインの使用
WLSTを使用すると、実行中のWebLogic Serverインスタンスに接続せずに、ドメイン・テンプレートの作成、既存のテンプレートに基づいた新しいドメインの作成、または既存のアクティブでないドメインの拡張を実行できます。WLSTオフラインでは、WebLogicドメイン内のリソースに関するパフォーマンス・データを参照したり、セキュリティ・データを変更(ユーザーの追加、削除など)したりすることはできません。
WLSTオフラインでは、テンプレート・ビルダーを使用して作成したドメイン・テンプレートJAR内、またはドメインのconfigディレクトリ内に永続化されている構成データへの読み書きアクセスが可能です。「構成階層情報の参照(オフライン)」を参照してください。
WLSTオフラインを使用する場合、構成データの変更に関する次の制限に注意してください。
-
アクティブなWebLogicドメインの構成を管理する際にはWLSTオフラインを使用しないことをお薦めします。オフラインによる編集は、実行中のサーバーによって無視されるので、WLSTオンラインやWebLogic Server管理コンソールなどのJMXクライアントによって上書きされる場合があります。
-
WebLogic Serverのデフォルト値のほとんどは、パフォーマンスを最適化するため、WebLogicドメインの構成ファイルには保持されていません。この最適化が原因で、WLSTオフラインでは管理オブジェクトを表示できない場合があります(WebLogic Serverでは対応するXML要素をドメインの構成ファイルに書き込んでいないため)。たとえば、ドメインがアクティブであるときにWebLogicドメインのロギングのデフォルト重大度を変更しなかった場合、WLSTオフラインではドメインの
Log管理オブジェクトは表示されません。WLSTオフラインで表示されない管理オブジェクトの属性のデフォルト値を変更する場合、最初に
createコマンドを使用して管理オブジェクトを作成する必要があります。次に、cdを使用して管理オブジェクトに移動し、属性値を変更します。WebLogic Server WLSTコマンド・リファレンスのcreateを参照してください。
対話モード、スクリプト・モード、および組込みモード
WLSTは様々な方法で呼び出せます。
WLSTコマンドは、次の任意の方法で呼び出すことができます。
対話モード
コマンドを入力するとレスポンスがコマンド・ライン・プロンプトに表示される対話モードは、スクリプトを構築する前にツールについて学習したり、コマンド構文を試作したり、構成オプションを確認したりするのに役立ちます。対話形式によるWLSTの使用は、特に構成に重要な変更を加えた後、即座にフィードバックを取得するのに有用です。WLSTスクリプト・シェルは、WebLogic Serverのインスタンスとの永続的な接続を維持します。
WLSTでは、WLSTセッション期間に入力されるすべてのコマンドをファイルに書き込むことができます。このファイルは、編集して、WLSTスクリプトとして実行できます。『WebLogic Server WLSTコマンド・リファレンス』のstartRecordingに関する項およびstopRecordingに関する項を参照してください。
スクリプト・モード
スクリプトは、シェル・スクリプトと同様に、ユーザーからの入力を必要とすることなくWLSTコマンドのシーケンスを呼び出します。スクリプトには、WLSTコマンドが拡張子.pyの付いたテキスト・ファイル(たとえば、filename.py)として含まれます。スクリプトを実行するには、スクリプト・ファイルをJythonコマンドと共に使用します。
WLSTスクリプトを使用して、次のことができます:
-
WebLogic Server構成およびアプリケーション・デプロイメントの自動化
-
トポロジの複数ノードに渡って、反復的に同じ構成設定を適用
-
対話モードでは制限されている、ループ、フロー制御コンストラクト、条件文、変数評価などのスクリプト言語機能を利用
-
スクリプトを様々な時点で実行されるようスケジューリング
-
反復的なタスクや複雑なプロシージャの自動化
-
手を使わずにデータ・センターでアプリケーションを構成
WebLogic Serverでインストールされるサンプル・スクリプトについては、「WLSTサンプル・スクリプト」を参照してください。
組込みモード
組込みモードでは、Javaコード内でWLSTインタプリタをインスタンス化し、それを使ってWLSTコマンドおよびスクリプトを実行します。対話モードおよびスクリプト・モードで使用するWLSTコマンドおよび変数はすべて、組込みモードで実行可能です。組込みWLSTを使用してプログラムを実行する前に、次のコマンドを起動して適切な環境変数を設定します。
-
Windows:
WL_HOME\server\bin\setWLSEnv.cmd -
UNIX:
WL_HOME/server/bin/setWLSEnv.shUNIXオペレーティング・システムでは、
setWLSEnv.shコマンドはすべてのコマンド・シェルで環境変数を設定しません。Kornシェルまたはbashシェルを使用してこのコマンドを実行することをお薦めします。
例2-1は、WLSTインタプリタをインスタンス化し、それを使用して実行中のサーバーに接続し、2つのサーバーを作成し、それらをクラスタに割り当てる方法を示します。
例2-1 JavaクラスからのWLSTの実行
package wlst;
import java.util.*;
import weblogic.management.scripting.utils.WLSTInterpreter;
import org.python.util.InteractiveInterpreter;
/**
* Simple embedded WLST example that will connect WLST to a running server,
* create two servers, and assign them to a newly created cluster and exit.
* <p>Title: EmbeddedWLST.java</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: Oracle</p>
*/
public class EmbeddedWLST
{
static InteractiveInterpreter interpreter = null;
EmbeddedWLST() {
interpreter = new WLSTInterpreter();
}
private static void connect() {
StringBuffer buffer = new StringBuffer();
buffer.append("connect('adminusername','adminpassword')");
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のセキュリティ
WLSTでは、WebLogicセキュリティ・フレームワークを使用して、認可されていないユーザーがWebLogicドメインを変更したり、暗号化されたデータを参照することを防止しています。
次の項では、WLSTのセキュリティ要件を満たすために行う必要のある操作について説明します。
WLST接続の保護
WLSTを使用してWebLogic Serverインスタンスに接続する場合、サーバー・インスタンスには管理ポートを介して接続することが推奨されます。管理ポートは、WebLogicドメイン内のすべてのWebLogic Serverインスタンスが管理トラフィック用に使用できる特別で安全なポートです。
このポートはデフォルトで有効ではありませんが、本番環境では有効にすることをお薦めします。管理ポートのデフォルト値は9002です。アプリケーションのトラフィックと管理トラフィックを分離することによって、重要な管理操作(サーバーの起動と停止、サーバーの構成の変更、およびアプリケーションのデプロイ)が、同じネットワーク接続上に存在する大量のアプリケーション・トラフィックと競合することがなくなります。
管理ポートでは、すべての通信がSSLを使用して保護される必要があります。デフォルトでは、WebLogicドメイン内のすべてのサーバーで、SSL用のデモ用証明書ファイルが使用されますが、これらの証明書は本番環境には適しません。
管理ポートの構成については、Oracle WebLogic Serverサーバー環境の管理の管理ポートと管理チャネルを参照してください。
構成データへのアクセスの保護
Weblogicドメインは、ドメイン・ディレクトリに保存される一群のXMLドキュメントに構成データを格納します。たとえば、これらの構成ドキュメントには、ドメイン内のデプロイされたリソース、リスニング・アドレス、および名前が記述されます。WebLogicドメイン内の1つまたは複数のサーバーが実行されている場合、各サーバー・インスタンスでは、構成データのメモリー内表現が、一群の管理対象Bean (MBean)として維持されます。
独自のセキュリティ対策を使用し、認可されたユーザーのみがファイル・システムを介してドメインの構成ファイルにアクセスできるようにする必要があります。ファイル・システムを介してドメインの構成ファイルにアクセスすることを認可されたユーザーであれば、テキスト・エディタ、WLSTオフライン、またはその他のツールを使用して構成ファイルを編集できます。
WLSTオンラインからのアクセスの保護
WLSTを使用してWebLogic Serverの実行中のインスタンスに接続する場合、アクティブなWebLogicセキュリティ・レルムで定義されているユーザーの資格証明(ユーザー名およびパスワード)を提供する必要があります。接続後は、一群のセキュリティ・ポリシーによって、表示または変更できる構成属性が決まります。(Oracle WebLogic Server MBeanリファレンスのMBeanのデフォルト・セキュリティ・ポリシーを参照してください。)
WLSTのconnectコマンドを呼び出す場合、次のいずれかの方法でユーザーの資格証明を提供できます。
-
コマンド・ラインで資格証明を入力します。この方法は、WLSTを対話モードで使用している場合にのみお薦めします。
たとえば:
connect('adminusername', 'adminpassword', 'localhost:7001'『WebLogic Server WLSTコマンド・リファレンス』のconnectに関する項を参照してください。
-
資格証明をコマンド・ラインで入力してから、
storeUserConfigコマンドを使用して、暗号化された形式の資格証明が格納されたユーザー構成ファイル、およびWebLogic Serverでその資格証明の復号化に使用されるキー・ファイルを作成します。以降のWLSTセッション(またはWLSTスクリプト)では、コマンド・ラインで資格証明を入力する代わりに、このファイルの名前を指定します。この方法は、WLSTをスクリプト・モードで使用している場合にお薦めします。スクリプト・モードでは、暗号化されていないユーザーの資格証明がスクリプトに格納されないためです。たとえば、ユーザー構成ファイルおよびキー・ファイルを作成するには、次のように指定します。
connect('adminusername', 'adminpassword', 'localhost:7001') storeUserConfig('c:/myFiles/myuserconfigfile.secure', 'c:/myFiles/myuserkeyfile.secure')ユーザー構成ファイルおよびキー・ファイルを使用するには:
connect(userConfigFile='c:/myfiles/myuserconfigfile.secure', userKeyFile='c:/myfiles/myuserkeyfile.secure')
『WebLogic Server WLSTコマンド・リファレンス』のconnectに関する項およびstoreUserConfigに関する項を参照してください。
-
ドメインの
boot.propertiesファイルが格納されているディレクトリからconnectコマンドを呼び出します。デフォルトでは、管理サーバーを作成すると、WebLogic Serverは資格証明を暗号化し、暗号化した資格証明をboot.propertiesファイルに格納します。ドメイン・ディレクトリからWLSTを起動した場合にのみ、WLSTでこのファイルが使用されます。たとえば、ドメインの
boot.propertiesファイルを削除していない場合、WLSTを起動して、connectコマンドを次のように呼び出すことができます。c:\mydomain\> java weblogic.WLST wls:/offline> connect()
『WebLogic Server WLSTコマンド・リファレンス』のconnectに関する項を参照してください。
暗号化された構成値の読み書き
WebLogicドメインの構成の一部の属性は、機密データへの権限のないアクセスを防ぐために暗号化されます。たとえば、JDBCデータ・ソースでRDBMSへの接続に使用されるパスワードは暗号化されます。
属性値は、暗号化された文字列としてドメインの構成ドキュメントに保存されます。この値は、実行中のサーバー・インスタンスでは、暗号化されたバイト配列形式のMBean属性として使用できます。暗号化されている属性は、名前がEncryptedで終わります。たとえばServerMBeanでは、IIOPプロトコルを介したアクセスの保護に使用されるパスワードがDefaultIIOPPasswordEncryptedという名前の属性として公開されます。
暗号化された属性の読み書きには、以下の形式が推奨されます。
WLSTオフラインの場合:
-
暗号化された値を書き込むには、暗号化属性の名前および暗号化されていない文字列を
setコマンドに渡します。たとえば:set('DefaultIIOPPasswordEncrypted', '<password>')WLSTは、この文字列を暗号化し、暗号化された値をドメインの構成ファイルに書き込みます。
『WebLogic Server WLSTコマンド・リファレンス』のsetに関する項を参照してください。
-
WLSTオフラインでは、暗号化属性の暗号化されていない値が表示されません。
lsコマンドを使用して管理属性を表示すると、WLSTオフラインでは、暗号化属性の値としてアスタリスクが返されます。getコマンドを使用すると、WLSTオフラインでは、アスタリスクを表すバイト配列が返されます。たとえば:
wls:/offline/wl_server/Server/examplesServer>ls()
returns
... -rw- DefaultIIOPPasswordEncrypted ******** ...
一方、
wls:/offline/wl_server/Server/examplesServer>get('DefaultIIOPPasswordEncrypted')returns
array([42, 42, 42, 42, 42, 42, 42, 42], byte)
『WebLogic Server WLSTコマンド・リファレンス』のlsに関する項およびgetに関する項を参照してください。
WLSTオンラインでは、各暗号化属性について、MBeanには暗号化されていないバージョンも格納されます。たとえば、ServerMBeanには、暗号化された値を格納するDefaultIIOPPasswordEncryptedという名前の属性と、暗号化されていないバージョンの値を格納するDefaultIIOPPasswordという名前の属性が格納されます。
WLSTオンラインで暗号化された値を読み書きするには:
-
暗号化された値を書き込むには、編集セッションを開始します。次に、以下のいずれかを行います。
-
暗号化されていない属性の名前と、暗号化されていない文字列を
setコマンドに渡します。たとえば:set('DefaultIIOPPassword', '<password>') -
暗号化属性の名前と、暗号化されたバイト配列をsetコマンドに渡します。暗号化されたバイト配列は、encryptコマンドを使用して作成できます(WebLogic Server WLSTコマンド・リファレンスのencryptを参照)。たとえば:
set('DefaultIIOPPasswordEncrypted', encrypt('<password>')) -
ノート:
暗号化されていない文字列を暗号化属性に渡さないでください。暗号化属性では、渡される値がすでに暗号化されていることを前提としています。
編集をアクティブ化すると、WebLogic Serverによって、暗号化された値がドメインの構成ファイルに書き込まれます。
-
-
属性の暗号化された値を読み込むには、暗号化属性の名前を
getコマンドに渡します。たとえば:get('DefaultIIOPPasswordEncrypted')returns
array([105, 114, 111, 110, 115, 116, 101, 101, 108], byte)
セキュリティ・データへのアクセスの保護
WebLogic Serverユーザーのユーザー名とパスワード、セキュリティ・グループおよびセキュリティ・ロールは、WebLogicドメインのXML構成ファイルには格納されません。かわりに、WebLogicドメインでは、認証プロバイダと呼ばれる別のソフトウェア・コンポーネントを使用し、セキュリティ・データの格納やトランスポート、およびセキュリティ・データへのアクセスの提供を行います。認証プロバイダは、様々な種類のシステムを使用してセキュリティ・データを格納することができます。WebLogic Serverでインストールされる認証プロバイダでは、組込みLDAPサーバーが使用されます。
WLSTオフラインを使用してドメイン・テンプレートを作成する際、WLSTでは、認証プロバイダのデータ・ストアと残りのドメイン・ドキュメントがパッケージ化されます。ドメイン・テンプレートからドメインを作成すると、新しいドメインは、ドメイン・テンプレートから認証プロバイダのデータ・ストアの完全なコピーを取得します。
WLSTオフラインを使用して認証プロバイダのデータ・ストアのデータを変更することはできません。
ただし、WLSTオンラインを使用すると、認証プロバイダと対話して、ユーザー、グループおよびロールを追加、削除または変更できます。「セキュリティ・データの管理(WLSTオンライン)」を参照してください。
対話モードまたはスクリプト・モードでのWLSTの使用の主なステップ
WLSTを対話モードまたはスクリプト・モードで使用するときには、起動方法、終了方法およびその構文を理解する必要があります。
以下の節では、WLSTを設定および使用するためのステップの概要を示します。
WLSTの呼出し
WLSTは次の方法で呼び出すことが可能です。
-
ご使用の環境に適切なシェル・スクリプトを実行し、WLSTシェルのWLSTコマンドを入力します。「提供済シェル・スクリプトを使用したWLSTの呼び出し」を参照してください
-
java weblogic.WLSTコマンドを実行します。「javaコマンドを使用したWLSTの呼出し」を参照してください -
WLSTシェル・スクリプトを呼び出す際に準備済WLSTスクリプトを実行します。「スクリプトの実行」を参照してください。
-
「スタート」メニューからWebLogic Scripting Toolコマンドを実行します(Windowsのみ)。
ノート:
UNIXまたはLinuxオペレーティング・システム上でWLSTによるドメインの作成や更新に時間がかかるような場合、CONFIG_JVM_ARGS環境変数を次の値に設定することにより、時間を短縮できます:
-Djava.security.egd=file:/dev/urandom
「AntからのWLSTの実行」を参照してください
提供済シェル・スクリプトを使用したWLSTの呼び出し
シェル・スクリプトを使用してWLSTを呼び出すには、ご使用の環境に適切なコマンドを実行します。WLSTを呼び出すには、この方法をお薦めします。この方法でWLSTを呼び出す場合、環境変数は自動的に設定されます。WLSTシェル内のWLSTコマンドを入力できます。
ノート:
次のコマンドは、スタンドアロンWebLogic Serverインストールにのみ適用されます(他のFusion MiddlwareMiddlewareコンポーネントを含まないインストール)。多数のFusion MiddlwareMiddlewareコンポーネントは、カスタムWLSTコマンドを提供します。これらを使用するには、適切なディレクトリからWLSTを呼び出す必要があります。Oracle Fusion Middlewareの管理のカスタムWLSTコマンドの使用を参照してください。
UNIX
cd ORACLE_HOME/oracle_common/common/bin
./wlst.sh
ORACLE_HOMEは、インストール時に指定したOracleホーム・ディレクトリです。
WLSTを実行する前にWLSTプロパティをUNIX環境に設定するには:
export WLST_PROPERTIES="-Dweblogic.security.SSL.ignoreHostnameVerification=true, -Dweblogic.security.TrustKeyStore=DemoTrust" ./wlst.sh
ノート:
複数のWLSTオフライン・プロセスの実行中にログ・ファイル名が衝突しないようにするには、WLSTを呼び出す前に次のプロパティを環境に設定します。
export WLST_PROPERTIES="-Dwlst.offline.log=./logs/debug.log"
Windows
cd ORACLE_HOME\oracle_common\common\bin
wlst.cmd
ORACLE_HOMEは、インストール時に指定したOracleホーム・ディレクトリです。
javaコマンドを使用したWLSTの呼出し
javaコマンドを使用してWLSTの呼び出すには、最初にWLST用の環境を設定する必要があります。WLST用の環境を設定するには:
環境を設定後、次の構文を使用してWLSTを呼び出します。
java [ -Dweblogic.security.SSL.ignoreHostnameVerification=true -Dweblogic.security.TrustKeyStore=DemoTrust ] [ -Dweblogic.security.JavaStandardTrustKeyStorePassPhrase=password] [ -Dweblogic.security.CustomTrustKeyStoreFileName=filename -Dweblogic.security.TrustKeystoreType=jks [ -Dweblogic.security.CustomTrustKeyStorePassPhrase=password]] [ -Dweblogic.security.SSL.hostnameVerifier=classname] weblogic.WLST [ -loadProperties propertyFilename ] [ -skipWLSModuleScanning ] [ [-i] filePath.py ]
(WLSTコマンドのオプションについては、表2-1を参照)。SSL引数については、表2-2を参照してください。表2-3に、WLSTの追加の起動引数を示します。
表2-1 WLSTのコマンド・オプション
| オプション | 説明 |
|---|---|
|
|
WLSTセッションにプロパティをロードする場合はこのオプションを使用します。ここで、 JythonモジュールとしてWLSTをインポートしている場合、このオプションは使用できません(「JythonモジュールとしてのWLSTのインポート」を参照)。 このコマンドライン・オプションを使用するかわりに、 |
|
|
WebLogic Serverモジュールに対してパッケージのスキャンとキャッシュを省略することによって起動時間を短縮する場合は、このオプションを使用します。 |
|
|
WLSTスクリプトを実行する場合、このオプションを使用します。ここで、 デフォルトでは、WLSTは、スクリプトの実行後に終了(Javaプロセスを停止)します。WLSTが終了しないようにするには、 ノート: このコマンド・ライン・オプションを使用するかわりに、WLSTの起動後、次のコマンドを使用できます。
|
表2-2 SSLの引数
| 引数 | 定義 |
|---|---|
|
|
SSLリスニング・ポートを介してWLSTをWebLogic Serverインスタンスに接続する場合、およびサーバー・インスタンスでデモ用のSSLキーおよび証明書を使用している場合は、これらのシステム・プロパティを使用します。
デフォルトでは、Java標準信頼キーストア( |
|
|
Java標準信頼キーストアの保護に使用されたパスワード。 Java標準信頼キーストアがパスワードで保護されており、そのCA証明書を信頼する場合には、この引数を使用する必要があります。 デフォルトでは、Java標準信頼キーストアはパスワードで保護されていません。 |
|
|
filenameにあるカスタム・キーストアのCA証明書を信頼するようにします。カスタム・キーストアを信頼するには、両方の引数を使用する必要があります。filenameは |
|
|
カスタム・キーストアの保護に使用されたパスワード。 カスタム・キーストアがパスワードで保護されている場合にのみ、この引数を使用する必要があります。 |
|
|
カスタム・ホスト名検証クラスの名前。このクラスは |
表2-3 追加のWLST起動引数
| 引数 | 説明 |
|---|---|
|
|
|
|
|
起動時の |
|
|
WLSTオフライン・ロギングにパスおよびファイル名を設定します( |
|
|
WLSTオフライン・ロギングのデバッグにログの優先度レベルを設定します。 |
例2-2 Javaコマンドを使用したWLSTの呼出し例
スクリプト・モードでWLSTを使用するには:
java weblogic.WLST c:/Oracle/Middleware/wlserver/common/templates/scripts/wlst/distributeQueues.py
SSLリスニング・ポートおよびデモ用の証明書を使用するWebLogic Serverインスタンス上でWLSTスクリプトを実行するには:
java -Dweblogic.security.SSL.ignoreHostnameVerification=true -Dweblogic.security.TrustKeyStore=DemoTrust weblogic.WLST c:/Oracle/Middleware/wlserver/common/templates/scripts/wlst/distributeQueues.py
対話モードでWLSTを使用するには:
java weblogic.WLST
対話モードでWLSTを起動した後でWebLogic Serverインスタンスに接続するには:
wls:/offline> connect('adminusername','adminpassword','localhost:7001') スクリプトの実行
WLSTスクリプトは、以下のようにして実行できます。
-
wlst.cmdまたはwlst.shコマンドに次のスクリプトを指定します。wlst.sh /oracle/middleware/wlserver/common/templates/scripts/wlst/distributedQueues.py
-
java weblogic.WLSTコマンドにスクリプトを指定します。次のようにして、スクリプトにフルパスを指定するか、java weblogic.WLST c:/Oracle/Middleware/wlserver/common/templates/scripts/wlst/distributedQueues.py
あるいは、以下のようにして、WLSTを呼び出す前にスクリプトが存在するディレクトリにナビゲートして、コマンドにスクリプト名だけを指定します。
cd C:/Oracle/Middleware/wlserver/common/templates/scripts/wlst java weblogic.WLST distributeQueues.py
-
対話型WLSTを呼び出した後、次の
execfile()コマンドを使用します。wls:offline> execfile('c:/Oracle/Middleware/wlserver/common/templates/scripts/wlst/distributedQueues.py')ノート:
パス名にバックスラッシュ(\)を使用する場合、バックスラッシュは特殊文字として認識されるため、エスケープする必要があります。「WLSTコマンドの構文」を参照してください。
WLSTの終了
WLSTを終了するには、exit()コマンドを入力します。
wls:/mydomain/serverConfig> exit()
Exiting WebLogic Scripting Tool ...
WLSTコマンドの構文
WLSTのコマンドを入力、またはスクリプトに記述する際は、次の構文を使用します。
-
コマンド名および引数では、大文字と小文字を区別します。
-
引数は一重引用符または二重引用符で囲みます。たとえば、
'newServer'または"newServer"です。 -
文字列にバックスラッシュ文字(
\)を使用する場合は、そのバックスラッシュに別のバックスラッシュを前置するか、小文字のrを文字列全体の先頭に配置します。このまたはrを指定すると、Jythonによってバックスラッシュが特殊文字として解釈されなくなります。たとえば、バックスラッシュが含まれるファイル・パス名を指定する際、次のように指定します。
readTemplate('c:\\userdomains\\mytemplates\\mytemplate.jar', 'Expanded')または
readTemplate(r'c:\userdomains\mytemplates\mytemplate.jar', 'Expanded')
ノート:
WindowsマシンでWLSTコマンドにパス名を指定する場合、フォワード・スラッシュ(/)を使用できます。たとえば:
readTemplate('c:/userdomains/templates/template.jar', 'Expanded')is as valid as
readTemplate('c:\\userdomains\\templates\\template.jar', 'Expanded') -
WLSTオフラインを使用している場合、管理オブジェクトの名前において、ピリオド(
.)、フォワードスラッシュ(/)またはバックスラッシュ(\)は無効です。名前の中にフォワードスラッシュ(
/)が含まれる管理オブジェクトに対してcdを実行する必要がある場合、そのオブジェクト名をカッコで囲みます。たとえば:cd('JMSQueue/(jms/REGISTRATION_MDB_QUEUE)')
複数のWLSTインスタンスを呼び出すときの考慮事項
WLSTの起動ときに、WLSTを起動したユーザーのユーザー名に基づき、Jythonによって一時ディレクトリに情報が保存されます。同一のユーザーが同時に実行される2種類のWLSTインスタンスを呼び出す場合、この情報を一時ディレクトリに保存する際に競合が発生する場合があります。
複数のWLSTインスタンスを同一のユーザー名で呼び出す場合、java.io.tmpdirシステム・プロパティを定義し、同時実行中の他のWLSTインスタンスによって共有される一時ディレクトリをポイントします。たとえば、WLSTの起動に使用するJavaコマンドに次のパラメータを含めます。
-Djava.io.tmpdir=C:\mytempdir
エラーおよびデバッグ出力のファイルへのリダイレクト
エラーおよびデバッグ情報をファイルにリダイレクトできます。
WLSTの情報、エラー、およびデバッグに関する各メッセージを標準出力からファイルにリダイレクトするには、次のように指定します。
redirect(outputFile,[toStdOut])
stopRedirect()
このコマンドでは、dumpStack()およびdumpVariables()コマンドの出力もリダイレクトされます。
たとえば、WLST出力を、WLSTを起動したディレクトリ下のlogs/wlst.logファイルにリダイレクトするには、次のコマンドを指定します。
wls:/mydomain/serverConfig> redirect('./logs/wlst.log')
『WebLogic Server WLSTコマンド・リファレンス』のredirectに関する項およびstopRedirectに関する項を参照してください。
WLSTに関するヘルプの使用
WLSTの各コマンドには、コマンドライン・ヘルプが用意されています。
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.
Syntax:
disconnect()
Example:
wls:/mydomain/serverConfig> disconnect() AntからのWLSTの実行
WebLogic Serverでは、Antビルド・ファイルからWLSTスクリプトを呼び出すカスタムAntタスクwlstを使用できます。WLSTスクリプト・ファイル(.py)を作成し、このタスクを使用してスクリプト・ファイルを呼び出すことができます。または、WLSTスクリプトをこのタスク内のネストした要素に作成できます。
Antの詳細は、『Apache Ant 1.7.1 Manual』(http://ant.apache.org/manual/)を参照してください。
wlstタスクは、WebLogic ServerにインストールされているバージョンのAntであらかじめ定義されています。このバージョンのAntをご使用のビルド環境に追加するには、次のスクリプトを実行します。WL_HOMEは、WebLogic Serverをインストールしたディレクトリです。
WL_HOME\server\bin\setWLSEnv.cmd (または、UNIXではsetWLSEnv.sh)
UNIXオペレーティング・システムでは、setWLSEnv.shコマンドはすべてのコマンド・シェルで環境変数を設定しません。Kornシェルまたはbashシェルを使用してこのコマンドを実行することをお薦めします。
独自にインストールしたAntでwlstタスクを使用する場合は、ビルド・ファイルに次のタスク定義を追加します。
<taskdef name="wlst" classname="weblogic.ant.taskdefs.management.WLSTTask" />
WLSTのタスク・パラメータ
表2-4に、<wlst>要素の属性として指定するwlstタスクのパラメータを示します。
表2-4 wlstのパラメータ
| 属性 | 説明 | 必須 |
|---|---|---|
|
properties=" |
WLSTスクリプト内で参照できる名前と値のペアを含むプロパティ・ファイルの名前と場所。 |
いいえ |
|
fileName=" |
実行するWLSTスクリプト・ファイルの名前と場所。指定されたWLSTスクリプト・ファイルが存在しない場合、このタスクは失敗します。 |
ネストした |
|
arguments=" |
スクリプトに渡す引数のリスト。これらの引数には、 |
いいえ |
|
failOnError=" |
このタスクが失敗した場合に、Antのビルドが失敗するかどうかを指定するブール値。 |
いいえ。デフォルトは |
|
executeScriptBeforeFile=" |
|
いいえ。デフォルトは |
|
debug=" |
このタスクの実行時にデバッグ文を出力するかどうかを指定するブール値。 |
いいえ。デフォルトは |
|
replaceProperties=" |
指定したWLSTスクリプトでAntプロパティを展開するかどうかを指定するブール値。 |
いいえ。デフォルトは |
ネストした要素として指定するWLSTのタスク・パラメータ
表2-5では、<wlst>要素のネストした要素として指定するwlstタスクのパラメータについて説明します。
表2-5 ネストした要素として指定するパラメータ
| 属性 | 説明 | 必須 |
|---|---|---|
|
script |
実行するスクリプト。 |
スクリプト・ファイルに名前を付けるのにfileName属性を使用しない場合は必須。 |
|
classpath |
クラスパスに追加するクラス。 この要素は、標準のAnt |
いいえ。クラスパスにまだ存在しないクラスがスクリプトで必要な場合に使用します。 |
WLST Antタスクの例
以下の節では、createServer、loop、およびerrorターゲットの例を示します。
CreateServerターゲットの例
次の例では、createServerターゲットが、以下の処理を行います。
-
タスクのクラスパスにクラスを追加します。
-
ネストした
script要素のスクリプトを実行する。このスクリプトは、WebLogicドメインの管理サーバー(t3://localhost:7001)に接続します。(executeScriptBeforeFileはtrueに設定されているため、指定したWLSTスクリプト・ファイルよりも先に呼び出されることに注意してください。) -
fileName属性で指定したスクリプト・ファイルmyscript.pyを実行します。スクリプト・ファイルは、Antを起動したディレクトリにあります。このようなファイルを使用して、編集セッションの開始、新しいサーバーの作成、構成の変更の保存およびアクティブ化を実行可能です。 -
スクリプトに渡される3つの引数を定義します。これらの引数には、
sys.argv変数を使用してアクセス可能です。 -
wlstAntタスクの実行が失敗しても、failOnError="false"設定に従って実行を続行します。 -
デバッグを無効化します。
<target name="configServer"> <wlst debug="false" failOnError="false" executeScriptBeforeFile="true" fileName="./myscript.py"> <classpath> <pathelement location="${my.classpath.dir}"/> </classpath> <script> connect('adminusername','adminpassword','t3://localhost:7001') </script> </wlst> </target>
Loopターゲットの例
次の例では、loopターゲットが、以下の処理を行います。
-
パスの参照を使用して、タスクのクラスパスにクラスを追加します。
-
Antを起動したディレクトリにあるWLSTスクリプト・ファイル
myscript.pyを実行する(executeScriptBeforeFileはfalseに設定されているため、WLSTスクリプト・ファイルが、埋め込まれたスクリプトよりも先に実行されることに注意してください。) -
埋め込まれたスクリプトを実行して
t3://localhost:7001のサーバーに接続し、WebLogicドメイン内のサーバーのリストにアクセスしてそれを出力します。 -
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 replaceProperties="true"> print 'In the target loop' connect('${admin.user}','${admin.password}','t3://localhost:7001') svrs = cmo.getServers() print 'Servers in the domain are' for x in svrs: print x.getName() </script> </wlst> </target>
Errorターゲットの例
次の例では、errorターゲットが、以下の処理を行います。
-
埋め込まれたスクリプトを実行して変数
thisWillCauseNameErrorを出力します。 -
thisWillCauseNameError変数が存在せず、wlstAntタスクの実行が失敗しても、failOnError="false"設定に従って実行を続行します。 -
デバッグを有効化します。
<target name="error"> <wlst debug="true" failOnError="false"> <script>print thisWillCauseNameError</script> </wlst> </target>
JythonモジュールとしてのWLSTのインポート
上級ユーザーは、WLSTをJythonモジュールとしてWebLogic Serverからインポートできます。WLSTのインポート後は、それを他のJythonモジュールと共に使用し、Jython構文で直接Jythonコマンドを呼び出せます。
主なステップとしては、WLST定義およびメソッド宣言の.pyファイルへの変換、JythonモジュールへのWLSTファイルのインポート、インポートされたファイルからのWLSTの参照などです。
JythonモジュールとしてWLSTをインポートするには:
WLSTのカスタマイズ
デフォルトではWL_HOME/common/wlstにあるWLSTホーム・ディレクトリを使用して、WLSTをカスタマイズできます。WL_HOMEは、WebLogic Serverの最上位インストール・ディレクトリを表します。WLSTホーム・ディレクトリ内で定義されているPythonスクリプトはすべて、WLST起動時にインポートされます。
ノート:
デフォルトのWLSTホーム・ディレクトリは、コマンド・ライン上で次の引数を渡すことで、カスタマイズできます。
-Dweblogic.wlstHome=<another-directory>表2-6はWLSTをカスタマイズする方法の説明です。
表2-6 WLSTのカスタマイズ
| 次のカスタマイズを定義するには... | 次を行います... | サンプル・スクリプトは、次を参照... |
|---|---|---|
|
WLSTコマンド |
新しいコマンドを定義するPythonスクリプトを作成し、そのファイルを |
|
|
ライブラリ内のWLSTコマンド |
新しいコマンドを定義するPythonスクリプトを作成し、そのファイルを このディレクトリ内のスクリプトが、Jythonライブラリとしてインポートされます。 |
|
|
JythonモジュールとしてのWLSTコマンド |
新しいコマンドを定義するPythonスクリプトを作成し、そのファイルを このスクリプトは、「JythonモジュールとしてのWLSTのインポート」で説明したとおり、他のJythonモジュールにインポートできます |
Jython 2.2.1で利用できるすべてのJythonモジュールが格納されている、JARファイル
|
|
カスタムWLSTコマンドの統合ヘルプ |
リソース・バンドル内に各コマンド・グループおよびコマンドのヘルプ・テキストを定義します。
通常、カスタム・コマンドの定義が格納されている.pyファイルから 「カスタム・コマンドの統合ヘルプの追加」を参照してください。 |
該当なし |
カスタム・コマンドの統合ヘルプの追加
WLSTをカスタマイズして、定義したカスタムWLSTコマンドの統合ヘルプを追加できます。統合ヘルプを追加するには、リソース・バンドル内に各コマンド・グループおよびコマンドのヘルプ・テキストを定義します。定義したファイルは、クラスまたはプロパティ・リソース・ファイルのいずれかになります。複数のコマンド・グループのヘルプを同じリソース・バンドルに定義できます。
ノート:
リソース・バンドルは、クラスパスに指定されている必要があります。
リソース・バンドルには、コマンド・グループごとに次のエントリが格納されます。
<commandGroup>_ShortDescription=\ <short description of command group> <commandGroup>_Description=\ \n<description of command group>
たとえば、次の行では、コマンド・グループnavigateの短い説明と説明が定義されています。
navigate_ShortDescription=\
Lists commands for navigating the hierarchy of beans.
navigate_Description=\
\n Navigates the hierarchy of beans and controls the prompt display. \n
help()コマンドを入力してコマンド・グループのリストを表示すると、次のようにリスト内にnavigateの短い説明が表示されます。
wls:/offline>help() WLST is a command line scripting tool to configure and administer a WebLogic Server. Try: help('all') List all WLST commands available. help('browser') List commands for browsing the hierarchy. help('navigate') List commands for navigating the bean hierarchy.
help('navigate')コマンドを入力すると、次のようにグループのコマンド・リストの上に説明が表示されます。
wls:/offline> help('navigate') Navigates the hierarchy of beans and controls the prompt display. help('mycd') Navigate the hierarchy of beans. help('myprmpt') Toggle the display of path information at the prompt.
リソース・バンドルには、標準パターンを使用したコマンドのヘルプ・テキスト・エントリも格納されます。次のように、コマンド名ごとにいくつかのエントリがあります。
<commandName>_ShortDescription <commandName>_Description <commandName>_Example <commandName>_Syntax
次の行では、mycdコマンドのヘルプが定義されています。
mycd_ShortDescription=\
Navigate the hierarchy of beans.
mycd_Description=\
\nNavigate the hierarchy of configuration or runtime beans. This \
\ncommand uses a model that is similar to navigating a file system \
\nin a Windows or UNIX command shell. For example, to navigate back \
\nto a parent configuration or runtime bean, enter mycd(".."). The \
\ncharacter string .. (dot-dot) refers to the directory immediately \
\nabove the current directory. To get back to the root configuration \
\nbean after navigating to a configuration or runtime bean that is \
\ndeep in the hierarchy, enter mycd("/"). \
mycd_Example=\
wls:/mydomain/serverConfig> mycd('Servers')\n\
wls:/mydomain/serverConfig/Servers> mycd('myserver)\n\
wls:/mydomain/serverConfig/Servers/myserver>mycd('../..')\n\
wls:/mydomain/serverConfig>
mycd_syntax=\
mycd(mbeanName)
\n- mbeanName = Path to the configuration or runtime bean in the namespace.\
\nhelp('commandGroup')コマンドを入力してグループのすべてのコマンドをリストすると、コマンド名の右側に、次のように短い説明が表示されます。
wls:/offline> help('navigate') Navigates the hierarchy of beans and controls the prompt display. help('mycd') Navigate the hierarchy of beans. help('myprmpt') Toggle the display of path information at the prompt.
help('commandName')コマンドを入力すると、説明、例、および構文が表示されます。
wls:/offline> help('mycd')
Description:
Navigate the hierarchy of configuration or runtime beans. This
command uses a model that is similar to navigating a file system
in a Windows or UNIX command shell. For example, to navigate back
to a parent configuration or runtime bean, enter mycd(".."). The
character string .. (dot-dot) refers to the directory immediately
above the current directory. To get back to the root configuration
bean after navigating to a configuration or runtime bean that is
deep in the hierarchy, enter mycd("/").
Syntax:
mycd(mbeanName)
- mbeanName = Path to the configuration or runtime bean in the namespace.
Example:
wls:/mydomain/serverConfig> mycd('Servers')\n\
wls:/mydomain/serverConfig/Servers> mycd('myserver)\n\
wls:/mydomain/serverConfig/Servers/myserver>mycd('../..')\n\
wls:/mydomain/serverConfig>
リソース・バンドルにヘルプ・テキストを定義したら、addHelpCommandGroupを使用して、コマンド・グループ名をhelp()コマンドで出力されるコマンド・グループのリストに追加します。addHelpCommandを使用して、グループ内の各コマンドをhelp('commandGroup')コマンドで表示されるコマンドのリストに追加します。WebLogic Server WLSTコマンド・リファレンスのaddHelpCommandGroupおよびaddHelpCommandを参照してください。
リソース・バンドルとローカライゼーションの詳細は、http://download.oracle.com/javase/6/docs/api/java/util/ResourceBundle.htmlを参照してください。
新しいWLSTコマンドを定義するサンプル・スクリプト
次のサンプル・スクリプトは、新しいWLSTコマンドを定義する方法を示しています。
def wlstHomeSample():
print 'Sample wlst home command'
このスクリプト内でwlstHomeSample()コマンドが定義され、このコマンドが次のようにテキスト文字列を出力します。
wls:/offline>wlstHomeSample()Sample wlst home command
新しいWLSTコマンドをこの方法で定義する場合は、.pyファイルをWL_HOME/common/wlstディレクトリに格納します。
次のサンプル・スクリプトは、階層化された製品およびISVが独自のネームスペース内のWLSTにコマンドを追加できる、WLST libディレクトリの使用法を示しています。このスクリプトの構造は、前の例と同様です。唯一の違いは、WL_HOME/common/wlstディレクトリではなく、WL_HOME/common/wlst/libディレクトリに格納される点です。
def wlstExampleCmd():
print 'Example command'
このスクリプト内でwlstExampleCmd()コマンドが定義され、このコマンドが次のようにテキスト文字列を出力します。
wls:/offline> wlstLibSample.wlstExampleCmd()
Example command
WLST libディレクトリがない場合は作成する必要があります。