WebLogic Scripting Tool ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

WebLogic Scripting Tool の使用

WebLogic Scripting Tool (WLST) は、WebLogic Server ドメインの作成、管理、およびモニタに使用できるコマンドライン スクリプト環境です。この環境は、Java のスクリプト インタプリタである Jython に基づいています。WLST では、ローカル変数、条件変数、フロー制御文など、標準の Jython 機能に加え、WebLogic Server に固有の一連のスクリプト機能 (コマンド) を使用できます。WebLogic のスクリプト言語は、Jython の言語構文に従って個々のニーズに合わせて拡張できます。http://www.jython.org を参照してください。

以下の節では、WebLogic Scripting Tool について説明します。

 


WLST オンラインまたはオフラインの使用

WLST は、WebLogic Server Administration Console に相当するコマンドライン (WLST オンライン) として、またはコンフィグレーション ウィザードに相当するコマンドライン (WLST オフライン) として使用できます。WebLogic Server Administration Console については、Administration Console オンライン ヘルプを参照してください。コンフィグレーション ウィザードについては、『コンフィグレーション ウィザードを使用した WebLogic ドメインの作成』を参照してください。

WLST オンラインの使用

WLST を使用して実行中の管理サーバに接続し、アクティブなドメインのコンフィグレーションの管理、ドメイン内のリソースに関するパフォーマンス データの参照、またはセキュリティ データの管理 (ユーザの追加、削除など) を実行できます。WLST を使用して管理対象サーバにも接続できますが、管理対象サーバのコンフィグレーション データは変更できません。

WLST オンラインは Java Management Extensions (JMX) クライアントです。WLST オンラインでは、基底のリソース用に管理インタフェースを提供する Java オブジェクトである、管理対象 Bean (MBean) のサーバのメモリ内コレクションと対話します。WebLogic Server MBean については、『JMX によるカスタム管理ユーティリティの開発』の「WebLogic Server MBean について」を参照してください。

WLST オフラインの使用

WLST を使用すると、実行中の WebLogic Server インスタンスに接続せずに、ドメイン テンプレートの作成、既存のテンプレートに基づいた新しいドメインの作成、または既存のアクティブでないドメインの拡張を実行できます。WLST オフラインでは、ドメイン内のリソースに関するパフォーマンス データを参照したり、セキュリティ データを変更 (ユーザの追加、削除など) したりすることはできません。

WLST オフラインでは、Template Builder を使用して作成したドメイン テンプレート JAR 内、またはドメインの config ディレクトリ内に永続化されているコンフィグレーション データへの読み書きアクセスが可能です。ドメインのコンフィグレーション ドキュメントについては、「BEA WebLogic 10.0 リファレンス」に示している『Domain Configuration Schema Reference』、およびその他のスキーマ リファレンス ドキュメントを参照してください。

WLST オフラインを使用する場合、コンフィグレーション データの変更に関する次の制限に注意してください。

 


対話モード、スクリプト モード、および組み込みモード

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 つのサーバを作成し、それらをクラスタに割り当てる方法を示します。

コード リスト 2-1 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>
 */
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 のセキュリティ

WLST では、WebLogic Security フレームワークを使用して、認可されていないユーザがドメインを変更したり、暗号化されたデータを参照することを防止しています。以下の節では、WLST のセキュリティ要件を満たすために行なう必要のある操作について説明します。

WLST 接続の保護

WLST を使用して WebLogic Server インスタンスに接続する場合、サーバ インスタンスには管理ポートを介して接続することが推奨されます。管理ポートは、ドメイン内のすべての WebLogic Server インスタンスが管理トラフィック用に使用できる特別で安全なポートです。

このポートはデフォルトで有効ではありませんが、プロダクション環境では有効にすることをお勧めします。アプリケーションのトラフィックと管理トラフィックを分離することによって、重要な管理操作 (サーバの起動と停止、サーバのコンフィグレーションの変更、およびアプリケーションのデプロイ) が、同じネットワーク接続上に存在する大量のアプリケーション トラフィックと競合することがなくなります。

管理ポートでは、すべての通信が SSL を使用して保護される必要があります。デフォルトでは、ドメイン内のすべてのサーバで、SSL 用のデモ用証明書ファイルが使用されますが、これらの証明書はプロダクション環境には適しません。

管理ポートのコンフィグレーションについては、『WebLogic Server 環境のコンフィグレーション』の「管理ポートと管理チャネル」を参照してください。

コンフィグレーション データへのアクセスの保護

Weblogic Server ドメインは、ドメイン ディレクトリに保存される一群の XML ドキュメントにコンフィグレーション データを格納します。たとえば、これらのコンフィグレーション ドキュメントには、ドメイン内のデプロイされたリソース、リスン アドレス、および名前が記述されます。ドメイン内の 1 つまたは複数のサーバが実行されている場合、各サーバ インスタンスでは、コンフィグレーション データのメモリ内表現が、一群の管理対象 Bean (MBean) として維持されます。

独自のセキュリティ対策を使用し、認可されたユーザのみがファイル システムを介してドメインのコンフィグレーション ファイルにアクセスできるようにする必要があります。ファイル システムを介してドメインのコンフィグレーション ファイルにアクセスすることを認可されたユーザであれば、テキスト エディタ、WLST オフライン、またはその他のツールを使用してコンフィグレーション ファイルを編集できます。

WLST オンラインからのアクセスの保護

WLST を使用して WebLogic Server の実行中のインスタンスに接続する場合、アクティブな WebLogic セキュリティ レルムで定義されているユーザの資格 (ユーザ名およびパスワード) を提供する必要があります。接続後は、一群のセキュリティ ポリシーによって、表示または変更できるコンフィグレーション属性が決まります (『WebLogic Server MBean リファレンス』の「Default Security Policies for MBeans」を参照)。

WLST の connect コマンドを呼び出す場合、次のいずれかの方法でユーザの資格を提供できます。

暗号化されたコンフィグレーション値の読み書き

WebLogic Server ドメインのコンフィグレーションの一部の属性は、機密データへの権限のないアクセスを防ぐために暗号化されます。たとえば、JDBC データソースで RDBMS への接続に使用されるパスワードは暗号化されます。

属性値は、暗号化された文字列としてドメインのコンフィグレーション ドキュメントに保存されます。この値は、実行中のサーバ インスタンスでは、暗号化されたバイト配列形式の MBean 属性として使用できます。暗号化されている属性は、名前が Encrypted で終わります。たとえば ServerMBean では、IIOP プロトコルを介したアクセスの保護に使用されるパスワードが DefaultIIOPPasswordEncrypted という名前の属性としてエクスポーズされます。

暗号化された属性の読み書きには、以下の形式が推奨されます。

WLST オフラインの場合 :

WLST オンラインでは、各暗号化属性について、MBean には暗号化されていないバージョンも格納されます。たとえば、ServerMBean には、暗号化された値を格納する DefaultIIOPPasswordEncrypted という名前の属性と、暗号化されていないバージョンの値を格納する DefaultIIOPPassword という名前の属性が格納されます。

WLST オンラインで暗号化された値を読み書きするには、次のようにします。

セキュリティ データへのアクセスの保護

セキュリティ グループ、セキュリティ ロール、および WebLogic Server ユーザのユーザ名およびパスワードは、ドメインの XML コンフィグレーション ドキュメントには格納されません。その代わりに、ドメインでは、認証プロバイダと呼ばれる別のソフトウェア コンポーネントを使用し、セキュリティ データの格納や転送、およびセキュリティ データへのアクセスの提供を行います。認証プロバイダは、さまざまな種類のシステムを使用してセキュリティ データを格納することができます。WebLogic Server でインストールされる認証プロバイダでは、組み込み LDAP サーバが使用されます。

WLST オフラインを使用してドメイン テンプレートを作成する際、WLST では、認証プロバイダのデータ ストアと残りのドメイン ドキュメントがパッケージ化されます。ドメイン テンプレートからドメインを作成すると、新しいドメインは、ドメイン テンプレートから認証プロバイダのデータ ストアの完全なコピーを取得します。

WLST オフラインを使用して認証プロバイダのデータ ストアのデータを変更することはできません。

ただし、WLST オンラインを使用すると、認証プロバイダと対話して、ユーザ、グループおよびロールを追加、削除または変更できます。詳細については、「セキュリティ データの管理 (WLST オンライン)」を参照してください。

 


対話モードまたはスクリプト モードでの WLST の使用の主な手順

以下の節では、WLST を設定および使用するための手順の概要を示します。

環境の設定

WLST の環境を設定するには、以下の手順に従います。

  1. インストール ガイド』の説明に従って、WebLogic Server ソフトウェアをインストールおよびコンフィグレーションします。
  2. WebLogic Server クラスを、CLASSPATH 環境変数に、WL_HOME\server\binPATH 環境変数に追加します。WL_HOME は、WebLogic Server の最上位インストール ディレクトリを表します。
  3. WL_HOME\server\bin\setWLSEnv スクリプトを使用すると、両方の変数を設定できます。

    Windows の場合は、[スタート] メニューのショートカットで環境変数を設定し、WLST を呼び出します ([Tools|WebLogic Scripting Tool])。

WLST の呼び出し

WLST を呼び出すには、次の構文を使用します (コマンドのオプションについては、表 2-1 を参照)。

java
   [ -Dweblogic.security.SSL.ignoreHostnameVerification=true
   -Dweblogic.security.TrustKeyStore=DemoTrust ]
   weblogic.WLST
   [ -loadProperties
propertyFilename ]
   [ [-i]
filePath.py ]

表 2-1 WLST のコマンド オプション
オプション
説明
-Dweblogic.security.SSL.
ignoreHostnameVerification=true
-Dweblogic.security.TrustKeyStore=
DemoTrust
SSL リスン ポートを介して WLST を WebLogic Server インスタンスに接続する場合、およびサーバ インスタンスでデモ用の SSL キーおよび証明書を使用している場合は、これらのシステム プロパティを使用する。
-loadProperties propertyFilename
WLST セッションにプロパティをロードする場合はこのオプションを使用する。ここで、propertyFilename は、name=value のペアが格納されたファイルの名前。
Jython モジュールとして WLST をインポートしている場合、このオプションは使用できない (「Jython モジュールとしての WLST のインポート」を参照)。
このコマンドライン オプションを使用する代わりに、loadproperties WLST コマンドを使用できる。「loadProperties」を参照してください。
[-i] filePath.py
WLST スクリプトを実行する場合、このオプションを使用する。ここで、filePath.py は、スクリプトの絶対パスまたは相対パス名。
デフォルトでは、WLST は、スクリプトの実行後に終了 (Java プロセスを停止) する。WLST が終了しないようにするには、-i を含める。

注意 : wlstProfile.py という WLST スクリプトが、WLST を呼び出すディレクトリ内、または user.home (JVM によって決定されるオペレーティング システムのユーザ アカウントのホーム ディレクトリ) 内に存在する場合、WLST によって wlstProfile.py スクリプトが自動的に実行されるため、コマンドラインでこの WLST スクリプト ファイルの名前を指定する必要はない。

このコマンドライン オプションを使用する代わりに、WLST の起動後、次のコマンドを使用できる。
execfile(`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 の終了

WLST を終了するには、exit() コマンドを入力します。

wls:/mydomain/serverConfig> exit()
Exiting WebLogic Scripting Tool ...
c:\>

WLST コマンドの構文

WLST のコマンドを入力、またはスクリプトに記述する際は、次の構文を使用します。

エラーおよびデバッグ出力のファイルへのリダイレクト

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.

Syntax:
disconnect()

Example:
wls:/mydomain/serverConfig>
disconnect()

 


Ant からの WLST の実行

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 タスクのパラメータを示します。

表 2-2 wlst のパラメータ
属性
説明
必須/省略可能
propertiesFile="propsFile"
WLST スクリプト内で参照できる名前と値のペアを含むプロパティ ファイルの名前と場所。
省略可能
fileName="fileName"
実行する WLST スクリプト ファイルの名前と場所。指定された WLST スクリプト ファイルが存在しない場合、このタスクは失敗する。
ネストした <script> が使用されていない場合、必須。
arguments="arglist"
スクリプトに渡す引数のリスト。これらの引数には、sys.argv 変数を使用してアクセス可能。
省略可能
failOnError="value"
このタスクが失敗した場合に、Ant のビルドが失敗するかどうかを指定するブール値。
省略可能。デフォルトは true
executeScriptBeforeFile="value"
fileName 属性で指定されるスクリプト ファイルの前に、ネストした <script> 要素のスクリプトをこのタスクで呼び出すかどうかを指定するブール値。この属性のデフォルトは、埋め込まれたスクリプトが先に呼び出されることを指定する true
省略可能。デフォルトは true
debug="value"
このタスクの実行時にデバッグ文を出力するかどうかを指定するブール値。
省略可能。デフォルトは false

ネストした要素として指定するパラメータ

以下の節では、<wlst> 要素のネストした要素として指定する wlst タスクのパラメータについて説明します。

script

WLST スクリプトを格納します。この要素は、スクリプト ファイルの名前を付けるのに fileName 属性を使用しない場合に必要です。

classpath

クラスパスに追加するクラスを指定します。この要素は、クラスパスにまだ存在しないクラスがスクリプトで必要な場合に使用します。

この要素は、標準の Ant classpath 要素です。クラスパスに追加するディレクトリおよびファイルを指定するネスト要素、またはビルド ファイルの任意の場所で定義した path 要素への参照を指定できます。『Apache Ant User Manual』の「Path-like Structures」を参照してください。

例 1

次の例では、createServer ターゲットが、以下の処理を行います。

例 2

次の例では、loop ターゲットが、以下の処理を行います。

例 3

次の例では、error ターゲットが、以下の処理を行います。

 


Jython モジュールとしての WLST のインポート

上級ユーザは、WLST を Jython モジュールとして WebLogic Server からインポートできます。WLST のインポート後は、それを他の Jython モジュールと共に使用し、Jython 構文で直接 Jython コマンドを呼び出せます。

主な手順としては、WLST 定義およびメソッド宣言の .py ファイルへの変換、Jython モジュールへの WLST ファイルのインポート、インポートされたファイルからの WLST の参照などです。

Jython モジュールとして WLST をインポートするには、次の手順に従います。

  1. WLST を呼び出します。
  2. c:\>java weblogic.WLST
    wls:/(offline)>

  3. WLST の定義およびメソッド宣言を .py ファイルに変換するには、writeIniFile コマンドを使用します。
  4. wls:/(offline)> writeIniFile("wl.py")
    The Ini file is successfully written to wl.py
    wls:/(offline)>

  5. 新しいコマンド シェルを開き、次のコマンドを入力して、Jython を直接呼び出します。
  6. c:\>java org.python.util.jython

    Jython パッケージ マネージャが、クラスパス内の JAR ファイルを処理します。Jython プロンプトが表示されます。

    >>>

  7. Jython の import コマンドを使用して、Jython モジュールに WLST モジュールをインポートします。
  8. >>>import wl

  9. これで、WLST メソッドをモジュール内で使用できるようになりました。たとえば、WLST をサーバ インスタンスに接続するには、次のように指定します。
  10. wl.connect('username','password')
    ....

    注意 : WLST を Jython モジュールとして使用する場合、ブロック引数を持つすべての WLST コマンドで、ブロックは常に true に設定され、コマンドが完了するまで WLST がユーザの対話をブロックすることが指定されます。「WLST コマンドおよび変数リファレンス」を参照してください。

 


WLST のカスタマイズ

デフォルトでは WL_HOME/common/wlst にある WLST ホーム ディレクトリを使用して、WLST をカスタマイズできます。WL_HOME は、WebLogic Server の最上位インストール ディレクトリを表します。WLST ホーム ディレクトリ内で定義されている Python スクリプトはすべて、WLST 起動時にインポートされます。

注意 : デフォルトの WLST ホーム ディレクトリは、コマンドライン上で次の引数を渡すことで、カスタマイズできます。
-Dweblogic.wlstHome=<another-directory>

次の表では、WLST をカスタマイズする方法について説明します。

表 2-3 WLST のカスタマイズ
カスタマイズ対象
作業内容
サンプル スクリプトの場所
WLST コマンド
新しいコマンドを定義する Python スクリプトを作成し、そのファイルを WL_HOME/common/wlst にコピーする。
WL_HOME/common/wlst/sample.py
このスクリプト内で wlstHomeSample() コマンドが定義され、このコマンドが次のように String を出力する。
wls:/(offline)> wlstHomeSample()
Sample wlst home command
ライブラリ内の WLST コマンド
新しいコマンドを定義する Python スクリプトを作成し、そのファイルを WL_HOME/common/wlst/lib にコピーする。
このディレクトリ内のスクリプトが、Jython ライブラリとしてインポートされる。
WL_HOME/common/wlst/lib/wlstLibSample.py
このスクリプト内で wlstExampleCmd() コマンドが定義され、このコマンドが次のように String を出力する。
wls:/(offline)> wlstLibSample.wlstExampleCmd()
Example command
Jython モジュールとしての WLST コマンド
新しいコマンドを定義する Python スクリプトを作成し、そのファイルを WL_HOME/common/wlst/modules にコピーする。
このスクリプトは、「Jython モジュールとしての WLST のインポート」で説明したとおり、他の Jython モジュールにインポートできる。
WL_HOME/common/wlst/modules/wlstModule.py
Jython 2.1 で利用できるすべての Jython モジュールが格納されている、JAR ファイル jython-modules.jar も、このディレクトリ内で利用可能である。


ページの先頭       前  次