5.5.11 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】/【実行対象システム内前提製品】の最新のサポート状況については,リリースノートを参照してください。
また、OSおよび製品について略称を用いています。対象とするOSおよび製品については「はじめに」を参照してください。
【実行対象サーバ内前提製品】
・VMware PowerCLI
【実行対象システム内前提製品】
(1)vCenterサーバの前提製品
・VMware vCenter Server
(2)仮想サーバを管理するVMware vSphere ESXi
(3)仮想サーバの前提OS
vCenterサーバの前提製品/仮想サーバを管理するVMware vSphere ESXi/vCenter操作サーバの前提製品がサポートする構成の範囲で,次のOSがサポート範囲です。
・Windows Server
・Red Hat Enterprise Linux Server
【実行対象サーバ内前提製品の稼働OS】
・Windows Server
【実行対象システム内前提製品の使用条件】
(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コマンドレットの注意事項を参照してください。
(5)ユーザーに入力を求める対話式スクリプト,GUI表示などによって自動的に終了しないスクリプトは実行しないでください。
実行権限
(1)VMware vCenter Serverに接続するユーザーに,次の権限が必要です。
システム管理者ロール
バージョン
02.50.00
部品のタグ
Modify VM,VMware 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 |
スクリプトの戻り値 |
仮想サーバで実行したスクリプトの戻り値が格納されます。 |
− |
出力 |
△ |