Cosminexus V9 アプリケーションサーバ 仮想化システム構築・運用ガイド

[目次][用語][索引][前へ][次へ]

7.8 仮想サーバで実行する処理を設定するための機能ユーザスクリプト機能

仮想サーバマネージャから任意のタイミングで,仮想サーバ上に配置したユーザ作成のスクリプト(ユーザスクリプト)を実行する機能です。この機能は,ユーザスクリプト機能ともいいます。ユーザスクリプト機能の実行対象とする,仮想サーバの論理ステータスに制限はありません。フックスクリプト機能と異なり,ユーザスクリプト機能は,仮想サーバの初期構築(論理ステータスがinitial(初期))以外のタイミングでも処理を実行できます。ユーザスクリプトを実行するには,vmiunitコマンドのサブコマンド「script」を使用します。

ユーザスクリプト機能を使用すると,例えば,構築済みの仮想サーバに対してほかの製品をセットアップする処理を,任意のタイミングで仮想サーバマネージャから一括で実施する運用ができるようになります。

<この節の構成>
(1) 設定方法
(2) 実行方法
(3) 実行結果
(4) ユーザスクリプト機能の実行例
(5) 注意事項

(1) 設定方法

ユーザスクリプトは,ユーザが任意で作成するファイルです。作成したファイルは,vmiunitコマンドのサブコマンド「script」を実行したタイミングで初めて仮想サーバ上に配布され,その処理が実行されます。

ユーザスクリプトのファイル名と格納先,記述形式を次の表に示します。

表7-6 ユーザスクリプトのファイル名と格納先,記述形式

仮想サーバのゲストOS ファイル名
(固定)
ファイルの格納先 記述形式
Windows user-script.bat <ユーザスクリプト配置ディレクトリ> バッチ形式
Linux user-script <ユーザスクリプト配置ディレクトリ> シェル形式

<ユーザスクリプト配置ディレクトリ>は,任意のディレクトリです。このディレクトリには,ユーザスクリプト以外のファイルやディレクトリも配置できます。ここに配置したファイルやディレクトリは,コマンド実行時にユーザスクリプトが配布されると同時に,仮想サーバ上へ配布されてユーザスクリプトから参照できるようになります。<ユーザスクリプト配置ディレクトリ>内のファイルおよびディレクトリは,仮想サーバ上の次のディレクトリに格納されます。ここに格納されたファイルおよびディレクトリは,ユーザスクリプトの処理が完了すると削除されます。

ゲストOSがWindowsの場合
<Application Serverのインストールディレクトリ>\sinagent\work\userscript_dir

ゲストOSがLinuxの場合
<Application Serverのインストールディレクトリ>/sinagent/work/userscript_dir

また,ユーザスクリプトでは,実行時に設定される環境変数「VMI_VIRTUALID」を使用できます。環境変数「VMI_VIRTUALID」には,仮想サーバ識別子(管理LANに接続されているIPアドレス)が設定されます。

(2) 実行方法

実行できるユーザ
  • 仮想サーバマネージャ管理者アカウントを持つユーザ
  • システム構築者アカウントを持つユーザ

実行するコマンドまたは呼び出し元の機能
vmiunitコマンドのサブコマンド「script」を実行します。

ユーザスクリプトの実行タイミングを次の図に示します。なお,コマンドの実行によって呼び出されたユーザスクリプトは,Windowsの場合はローカルシステムアカウント,Linuxの場合はスーパーユーザで実行されます。

図7-6 ユーザスクリプトの実行タイミング

[図データ]

(3) 実行結果

ユーザスクリプトに設定した処理が実行されます。ユーザスクリプトの設定内容が実行結果となり,戻り値によって機能の成功または失敗が判断されます。

ユーザスクリプト機能の実行が,1台以上の仮想サーバで失敗した場合,コマンドの戻り値は64(異常終了)となります。

(4) ユーザスクリプト機能の実行例

ここでは,仮想サーバのネットワーク情報を書き出す処理をユーザスクリプトで実行する場合を例にして,実行手順を説明します。

  1. 管理用端末マシンから仮想化システム管理用サーバマシンにリモート接続します。
  2. <ユーザスクリプト配置ディレクトリ>にユーザスクリプトを作成します。
    ユーザスクリプト(user-script.bat)の作成例を次に示します。
    mkdir d:\data
    netstat > d:\data\netstat_%VMI_VIRTUALID%.txt
    ipconfig > d:\data\ipconfig_%VMI_VIRTUALID%.txt
  3. vmiunitコマンドのサブコマンド「script」を使用して,指定したパスにあるユーザスクリプトを実行します。
    ここでは,管理ユニット「gyoumu_a」に属するすべての仮想サーバに対して,手順1.で作成したuser-script.batを実行する場合のコマンドの実行例を示します。
    vmiunit script -unit gyoumu_a -dir <ユーザスクリプト配置ディレクトリ>
  4. 管理用端末マシンからハイパーバイザ管理用サーバマシンにリモート接続します。
  5. 仮想サーバからネットワーク情報を書き出した結果ファイルを取得します。
    ここでは,スクリプトに記述した,次のファイルを取得します。
    • d:\data\netstat_<仮想サーバ識別子>.txt
    • d:\data\ipconfig_<仮想サーバ識別子>.txt

(5) 注意事項

ユーザスクリプト機能を使用する場合の注意事項を次に示します。