Hitachi

JP1 Version 10 JP1/Automatic Operation サービステンプレートリファレンス


5.11.50 vCenterサーバ経由でのスクリプト実行

機能

この部品は,VMware vSphere環境で,vCenterサーバ経由で仮想サーバのゲストOS上に配置された非対話型のスクリプトを実行します。

実行できるスクリプトは,Windows バッチ ファイル(拡張子bat),Windows PowerShell スクリプト(拡張子ps1),シェルスクリプト(拡張子sh)です。

スクリプトの実行は,実行対象サーバで次のvSphere PowerCLIのコマンドレットを使用して行います。

 Invoke-VMScript -ScriptText "各スクリプトの実行形式"

          -VM VirtualMachineオブジェクト※1

          -GuestUser "ゲストOSにログインするためのユーザー名(VMware.guestOSUserNameプロパティ)の値"

          -GuestPassword "ゲストOSにログインするためのパスワード(VMware.guestOSUserPasswordプロパティ)の値"

          -Confirm:$false※2

 ※1 仮想サーバ名(VMware.vmNameプロパティ)の値から取得したオブジェクト

 ※2 コマンドレットが対話型になるのを防ぎます。

スクリプトごと次に示す実行形式をScriptTextオプションに指定して実行します。

・Windows バッチ ファイル(拡張子bat)

 "& 'ゲストOS上のスクリプトファイルパス(VMware.scriptFileOnGuestプロパティ)' 'スクリプトの引数(VMware.scriptParameterプロパティ)' ; exit $LASTEXITCODE"

・Windows PowerShell スクリプト(拡張子ps1)

 "Set-ExecutionPolicy RemoteSigned -Scope Process ; & 'ゲストOS上のスクリプトファイルパス(VMware.scriptFileOnGuestプロパティ)' 'スクリプトの引数(VMware.scriptParameterプロパティ)' ; exit $LASTEXITCODE"

・シェルスクリプト(拡張子sh)

 "/bin/bash 'ゲストOS上のスクリプトファイルパス(VMware.scriptFileOnGuestプロパティ)' 'スクリプトの引数(VMware.scriptParameterプロパティ)' "

仮想サーバで実行したスクリプトの標準出力および標準エラー出力は,スクリプトの出力ファイルパス(VMware.scriptOutputFilePathプロパティ)に指定した,実行対象サーバのファイルパスに出力されます。

スクリプトの戻り値は,Invoke-VMScriptコマンドレットの戻り値(ExitCodeプロパティ)を取得しスクリプトの戻り値(common.scriptReturnCodeプロパティ)に出力されます。スクリプトの戻り値が0以外の値の場合,部品は異常終了します。スクリプトが実行される前に部品が異常終了した場合,スクリプトの戻り値(common.scriptReturnCodeプロパティ)に255が出力されます。スクリプトの戻り値で255は使用しないでください。

スクリプトの引数(VMware.scriptParameterプロパティ)に複数の引数を使用する場合は,引数と引数の間を","(半角コンマ)か"-"(半角ハイフン)のどちらかで区切ることができます。スクリプト引数の区切り文字(VMware.scriptParamDelimiterプロパティ)に区切り文字として使用する記号を入力してください。使用できる記号は","(半角コンマ)か"-"(半角ハイフン)のどちらかです。

例:スクリプトの引数 "AAA,BBB,CCC"

  スクリプト引数の区切り文字 ","

   ->" & XXX.bat 'AAA' 'BBB' 'CCC' ; exit $LASTEXITCODE"

この部品が前提とするサーバを次に示します。

・vCenterサーバ

 VMware vCenter Serverがインストールされているサーバです。

・ESXサーバ

 VMware vSphere ESXiがインストールされているサーバです。

・vCenter操作サーバ(実行対象サーバ)

 VMware vSphere PowerCLIがインストールされているサーバです。JP1/AOによってこのサーバに部品が転送され,実行されます。

・仮想サーバ

 vCenterサーバおよびVMware vSphere ESXiによって管理されている仮想サーバです。

Invoke-VMScriptコマンドレットの詳細については,vSphere PowerCLI Documentationの「Cmdlet Reference」を参照してください。

利用場面

vCenterサーバが管理する仮想サーバと,JP1/AOサーバが通信できない環境で,vCenterサーバを経由してvCenter操作サーバからOSの初期設定を行うスクリプトファイルを実行するために使用する。

「vCenterサーバ経由でのファイル送信(vsphereSendFileToGuest部品)」と「vCenterサーバ経由でのファイル削除(vsphereDeleteFileOnGuest部品)」もしくは「vCenter経由でのフォルダ送信(vsphereSendFolderToGuest部品)」と「vCenterサーバ経由でのフォルダ削除(vsphereDeleteFolderOnGuest部品)」と組み合わせて使用します。

前提条件

【システム内前提製品】/【実行対象サーバ内前提製品】/【実行対象サーバ内前提製品の稼働OS】の最新のサポート状況については,リリースノートを参照してください。

【システム内前提製品】

 JP1/Automatic Operation 10-52以降

【実行対象サーバ内前提製品】

 ・VMware vSphere PowerCLI 6.0 Release1,5.8 Release1,5.5 Release2,5.5 Release1,5.1 Release2,5.0

【実行対象システム内前提製品】

(1)vCenterサーバの前提製品

 ・VMware vCenter Server 6.0,5.5,5.1,5.0

(2)仮想サーバを管理するVMware vSphere ESXi

 ・VMware vSphere ESXi 6.0,5.5,5.1,5.0

(3)仮想サーバの前提OS

 vCenterサーバの前提製品/仮想サーバを管理するVMware vSphere ESXi/vCenter操作サーバの前提製品がサポートする構成の範囲で,次のOSがサポート範囲です。

 ・Windows Server 2008 Standard/Enterprise (x86/x64),Windows Server 2008 R2 Standard/Enterprise/Datacenter

 ・Windows Server 2012 Standard/Datacenter,Windows Server 2012 R2 Standard/Datacenter

 ・Red Hat Enterprise Linux 5 Advanced Platform (x86),Red Hat Enterprise Linux 5 (x86),Red Hat Enterprise Linux 5 Advanced Platform (AMD/Intel 64),Red Hat Enterprise Linux 5 (AMD/Intel 64)

 ・Red Hat Enterprise Linux Server 6 (32-bit x86),Red Hat Enterprise Linux Server 6 (64-bit x86_64)

【実行対象サーバ内前提製品の稼働OS】

 ・Windows Server 2008 R2 Standard/Enterprise/Datacenter

 ・Windows Server 2012 Standard/Datacenter,Windows Server 2012 R2 Standard/Datacenter

【実行対象システム内前提製品の使用条件】

(1)VMware vSphere ESXiがVMware vCenter Serverで管理されていること。

(2)VMware vCenter Server上の設定に関する条件

 ・仮想サーバの名称が一意であること。

 ・VMwareに関連する次の名称について,VMware上では英字の大文字・小文字は区別されますが,この部品が実行するvSphere PowerCLIからは,指定した名称の英字の大文字・小文字を区別できません。

  - 仮想サーバ名

(3)仮想サーバに関する条件

 ・仮想サーバが起動していること。

 ・仮想サーバがWindowsの場合,Windows PowerShell 2.0以降がインストールされいること。

 ・仮想サーバに,VMwareToolsがインストールされていること。

注意事項

(1)この部品のプロパティには「"」(ダブルクォーテーション)および「'」(シングルクォーテーション)を含む文字列は指定しないでください。

(2)ゲストOS上のスクリプトファイルパス(VMware.scriptFileOnGuestプロパティ),スクリプトの引数(VMware.scriptParameterプロパティ)に「`」(バッククォート)および「$」(ドルマーク)を含む文字列は指定しないでください。

(3)スクリプトの出力ファイルパス(VMware.scriptOutputFilePathプロパティ)に指定したパスのファイルが既に存在する場合,既存のファイルを上書きします。また,ファイルパスに存在しないフォルダがある場合は,フォルダを作成後にファイルを出力します。

(4)その他の注意事項については,vSphere PowerCLI Documentationの「Cmdlet Reference」のInvoke-VMScriptコマンドレットの注意事項を参照してください。

実行権限

(1)VMware vCenter Serverに接続するユーザーに,次の権限が必要です。

 システム管理者ロール

バージョン

01.54.00

カテゴリ

VirtualMachine/vSphere

タスクログに表示される部品の名称

vsphereInvokeScript

戻り値

戻り値

説明

0

正常

12

異常(ユーザーミス) プロパティ不正

23

異常(環境不正) 前提環境不正

27

異常(エラー内容はタスクログで確認)

41

異常(部品内でエラーを検知) プロパティ未入力(部品スクリプトでエラーを検知)

プロパティ一覧

プロパティ一覧を次の表に示します。

プロパティキー

プロパティ名

説明

デフォルト値

入出力種別

必須区分

plugin.destinationHost

実行対象サーバのホスト名

この部品を実行するサーバのホスト名またはIPアドレスを指定します。IPv6アドレスには対応していません。

− 

入力

○ 

VMware.vCenterServerName

vCenterサーバ名

VMware vCenter Serverのホスト名,またはIPアドレスを指定します。IPv6アドレスには対応していません。

− 

入力

○ 

VMware.userName

VMware vCenter Serverに接続するためのユーザー名

VMware vCenter Serverに接続するためのユーザー名を指定します。

− 

入力

○ 

VMware.password

VMware vCenter Serverに接続するためのパスワード

VMware vCenter Serverに接続するためのパスワードを指定します。

− 

入力

○ 

VMware.portNumber

VMware vCenter Server接続用ポート番号

VMware vCenter Serverに接続するためのポート番号(VMware vCenter ServerのWebサービス用)を指定します。指定しなかった場合には,VMware vCenter Serverで設定されているデフォルト値で接続します。

443

入力

△ 

VMware.protocol

VMware vCenter Server接続用プロトコル

VMware vCenter Serverに接続するためのプロトコルを指定します。

https

入力

○ 

VMware.vmName

仮想サーバ名

仮想サーバの名称を指定します(VMware vCenter Serverにおける仮想サーバの表示名称です。OS上のホスト名ではありません)。

− 

入力

○ 

VMware.guestOSUserName

ゲストOSにログインするためのユーザー名

ゲストOSにログインするためのユーザー名を指定します。

− 

入力

○ 

VMware.guestOSUserPassword

ゲストOSにログインするためのパスワード

ゲストOSにログインするためのパスワードを指定します。

− 

入力

○ 

VMware.scriptFileOnGuest

ゲストOS上のスクリプトファイル

ゲストOS上で実行するスクリプトファイルをフルパスで指定します。

− 

入力

○ 

VMware.scriptParameter

スクリプトの引数

スクリプトの引数を指定します。複数の引数を指定する場合は,スクリプト引数の区切り文字に指定した値(半角コンマまたは半角ハイフン)を引数の間に挿入してください。

− 

入力

△ 

VMware.scriptParamDelimiter

スクリプト引数の区切り文字

スクリプトの引数の区切り文字を指定します。指定可能な値は","(半角コンマ)または"-"(半角ハイフン)です。省略した場合は,スクリプトの引数に指定した値を1つの引数として扱います。

,

入力

△ 

VMware.scriptOutputFilePath

スクリプトの出力ファイルパス

スクリプトの標準出力および標準エラー出力を出力する実行対象サーバ上のファイルパスをフルパスで指定します。

− 

入力

○ 

common.returnValue

部品の戻り値

この部品の戻り値が格納されます。

− 

出力

△ 

common.scriptReturnCode

スクリプトの戻り値

仮想サーバで実行したスクリプトの戻り値が格納されます。

− 

出力

△