3.9.1 vCenterサーバ経由でのスクリプト実行
機能
このサービステンプレートは,VMware vSphere環境で,指定した非対話型のスクリプトファイルを実行対象サーバからvCenterサーバ経由で仮想サーバのゲストOSに送信し,ゲストOS上でスクリプトファイルを実行します。その後,不要な場合はスクリプトファイルを削除できます。
このサービステンプレートが前提とするサーバを次に示します。
・vCenterサーバ
VMware vCenter Serverがインストールされているサーバです。
・ESXサーバ
VMware vSphere ESXiがインストールされているサーバです。
・vCenter操作サーバ(実行対象サーバ)
VMware vSphere PowerCLIがインストールされているサーバです。本製品によってこのサーバに部品が転送され,実行されます。
・仮想サーバ
vCenterサーバおよびVMware vSphere ESXiによって管理されている仮想サーバです。
処理の概要を次に示します。
(1)実行対象サーバでPowerCLIのコマンドレット"Copy-VMGuestFile"を実行して,指定したスクリプトを実行対象サーバから仮想サーバのゲストOSに送信する。
(2)実行対象サーバでPowerCLIのコマンドレット"Invoke-VMScript"を実行して,(1)で送信したスクリプトを実行します。その際,仮想サーバで次に示す実行形式でスクリプトを実行を行います。
・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プロパティ)に指定した,実行対象サーバのファイルパスに出力されます。
(3)スクリプト削除の要否(vmware.deleteScriptEnabledプロパティ)にyesを指定した場合,実行対象サーバから仮想サーバのゲストOSに送信したスクリプトを削除できます。削除する場合,仮想サーバの環境ごとに次に示す形式で削除を行います。
・Windows
"Remove-Item -LiteralPath 'ゲストOS上のスクリプトファイルパス(vmware.scriptFileOnGuestプロパティ)' -Force "
・UNIX
"/bin/rm -f 'ゲストOS上のスクリプトファイルパス(vmware.scriptFileOnGuestプロパティ)' "
プロパティ設定の留意点を次に示します。
(1)ゲストOS上のスクリプトファイルパス(vmware.scriptFileOnGuestプロパティ)に指定できるスクリプトファイルは,Windows バッチ ファイル(拡張子bat),Windows PowerShell スクリプト(拡張子ps1),シェルスクリプト(拡張子sh)です。
(2)スクリプトの引数(vmware.scriptParameterプロパティ)に複数の引数を使用する場合は,引数と引数の間を","(半角コンマ)か"-"(半角ハイフン)のどちらかで区切ることができます。
詳細については,各部品の仕様を参照してください。
前提条件
【実行対象サーバ内前提製品】/【実行対象サーバ内前提製品の稼働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)ゲストOS上のスクリプトファイルパス(vmware.scriptFileOnGuestプロパティ),スクリプトの出力ファイルパス(vmware.scriptOutputFilePathプロパティ)にすでに同名のファイルが存在する場合にはファイルを上書きします。また,ファイルパスに存在しないフォルダが含まれる場合,フォルダを作成してファイルを送信します。これらのフォルダが不要な場合は,削除して下さい。
(2)ゲストOS上のスクリプトファイルパス(vmware.scriptFileOnGuestプロパティ)に同名なフォルダが存在した場合,同名なフォルダの配下に送信元のスクリプトファイル名で格納されます。その場合,スクリプトの実行に失敗し,サービスは異常終了します。
(3)ファイル送信中にエラーが発生した場合,仮想サーバへ送信途中だったファイルは削除されませんので,不要な場合は削除してください。
(4)ユーザーに入力を求める対話式スクリプト,GUI表示などによって自動的に終了しないスクリプトは実行しないでください。
(5)このサービステンプレートを同一の仮想サーバに対して同時に実行しないでください。
(6)VMware vCenter操作サーバ上のスクリプトファイル(vmware.scriptFileOnHostプロパティ)に指定したスクリプトはバイナリ形式でゲストOSに転送されます。そのため,あらかじめゲストOSで実行可能な改行コード・文字コードでスクリプトを作成してください。
実行権限
(1)VMware vCenter Serverに接続するユーザーに,次の権限が必要です。
システム管理者ロール
バージョン
04.00.00
タグ
Execute Script,VMware vSphere
プロパティ一覧
プロパティに設定されているプロパティグループの一覧を次に示します。
プロパティグループ |
説明 |
初期表示 |
---|---|---|
仮想システム環境情報 |
VMware vCenter Serverの情報を指定してください。 |
表示されます。 |
仮想サーバ情報 |
スクリプトを実行する仮想サーバの情報を指定してください。 |
表示されます。 |
スクリプト情報 |
スクリプト実行のための情報を指定してください。 |
表示されます。 |
出力ファイル格納情報 |
出力ファイルの格納先を指定してください。 |
表示されます。 |
[サービス設定]画面に表示されるプロパティの一覧を次に示します。
- (凡例)
-
○:プロパティの指定は必須です。
△:プロパティの指定は省略可能です。ただし,ほかのプロパティの指定内容によっては,指定が必須になります。各プロパティの「説明」を確認してください。
プロパティキー |
プロパティ名 |
説明 |
入出力種別 |
共有設定 |
必須区分 |
プロパティグループ |
---|---|---|---|---|---|---|
vmware.targetHost |
VMware vCenter操作サーバのホスト名 |
VMware vCenter Serverを操作するサーバ(vSphere PowerCLIインストール済みサーバ)のホスト名または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で設定されているデフォルト値で接続します。 |
入力 |
無効 |
△ |
仮想システム環境情報 |
vmware.protocol |
VMware vCenter Server接続用プロトコル |
VMware vCenter Serverに接続するためのプロトコルを指定します。 |
入力 |
無効 |
○ |
仮想システム環境情報 |
[サービス設定]画面および[サービス実行]画面に表示されるプロパティの一覧を次に示します。
プロパティキー |
プロパティ名 |
説明 |
入出力種別 |
共有設定 |
必須区分 |
プロパティグループ |
---|---|---|---|---|---|---|
vmware.vmName |
仮想サーバ名 |
仮想サーバの名称を指定します(VMware vCenter Serverにおける仮想サーバの表示名称です。OS上のホスト名ではありません)。 |
入力 |
無効 |
○ |
仮想サーバ情報 |
vmware.guestOSUserName |
ゲストOSにログインするためのユーザー名 |
ゲストOSにログインするためのユーザー名を指定します。 |
入力 |
無効 |
○ |
仮想サーバ情報 |
vmware.guestOSUserPassword |
ゲストOSにログインするためのパスワード |
ゲストOSにログインするためのパスワードを指定します。 |
入力 |
無効 |
○ |
仮想サーバ情報 |
vmware.scriptFileOnHost |
VMware vCenter操作サーバ上のスクリプトファイル |
送信元となるVMware vCenter操作サーバ上のスクリプトファイルをフルパスで指定します。 |
入力 |
無効 |
○ |
スクリプト情報 |
vmware.scriptFileOnGuest |
ゲストOS上のスクリプトファイル |
送信先となるゲストOS上のスクリプトファイルをフルパスで指定します。送信後このプロパティに指定したスクリプトファイルを実行します。 |
入力 |
無効 |
○ |
スクリプト情報 |
vmware.scriptParameter |
スクリプトの引数 |
スクリプトの引数を指定します。複数の引数を指定する場合は,スクリプト引数の区切り文字に指定した値(半角コンマまたは半角ハイフン)を引数の間に挿入してください。 |
入力 |
無効 |
△ |
スクリプト情報 |
vmware.scriptParamDelimiter |
スクリプト引数の区切り文字 |
スクリプトの引数の区切り文字を指定します。指定可能な値は","(半角コンマ)または"-"(半角ハイフン)です。省略した場合は,スクリプトの引数に指定した値を1つの引数として扱います。 |
入力 |
無効 |
△ |
スクリプト情報 |
vmware.scriptOutputFilePath |
スクリプトの出力ファイルパス |
スクリプトの標準出力および標準エラー出力を出力するVMware vCenter操作サーバ上のファイルパスをフルパスで指定します。 |
入力 |
無効 |
○ |
出力ファイル格納情報 |
vmware.deleteScriptEnabled |
スクリプト削除の要否 |
実行後に,スクリプトを削除するかどうかを指定します。「yes」を選択した場合,スクリプトを削除します。「no」を選択した場合,スクリプトを削除しません。 |
入力 |
無効 |
○ |
スクリプト情報 |
[タスク詳細]画面にだけ表示されるプロパティの一覧を次に示します。
プロパティキー |
プロパティ名 |
説明 |
入出力種別 |
共有設定 |
---|---|---|---|---|
common.scriptReturnCode |
スクリプトの戻り値 |
仮想サーバで実行したスクリプトの戻り値が格納されます。 |
出力 |
無効 |
[サービス設定]画面に表示されるプロパティの入力制限を次に示します。
プロパティキー |
入力可能文字 |
---|---|
vmware.targetHost |
256文字以内の半角英数字および「.」,「-」。 |
vmware.vCenterServerName |
256文字以内の半角英数字および「.」,「-」。 |
vmware.userName |
512文字以内の半角英数字および半角記号。 ただし,「<」,「>」,「|」,「;」,「&」,「'」,「"」,「*」,「?」,「[」,「]」,「`」,「/」,「:」,「=」,「,」,「+」,「%」を除く。 |
vmware.password |
127文字以内の半角英数字および半角記号。ただし,「<」,「>」,「|」,「;」,「&」,「'」,「"」,「*」,「?」,「[」,「]」,「`」,「%」を除く。 |
vmware.portNumber |
1〜65535の整数値。 |
vmware.protocol |
次の値のどれかを選択する。 http,https |
[サービス設定]画面および[サービス実行]画面に表示されるプロパティの入力制限を次に示します。
プロパティキー |
入力可能文字 |
---|---|
vmware.vmName |
60文字以内の文字列。ただし,「<」,「>」,「|」,「;」,「&」,「'」,「"」,「*」,「?」,「[」,「]」,「`」,「,」,「%」を除く。 |
vmware.guestOSUserName |
32文字以内の半角英数字。および「!」,「#」,「$」,「(」,「)」,「-」,「.」,「^」,「_」,「`」,「{」,「}」,「~」。 |
vmware.guestOSUserPassword |
255文字以内の文字列。ただし「<」,「>」,「|」,「"」,「'」,「;」,「&」を除く。 |
vmware.scriptFileOnHost |
256文字以内の半角英数字。および「.」,「¥」,「:」。ただし,末尾の「¥」を除く。 |
vmware.scriptFileOnGuest |
256文字以内の半角英数字。および「.」,「/」,「¥」,「:」。ただし,末尾の「¥」,「/」を除く。 |
vmware.scriptParameter |
1024文字以内の半角英数字。および「.」,「/」,「¥」,「:」,「,」,「-」。 |
vmware.scriptParamDelimiter |
次の値のどれかを選択する。 ,,- |
vmware.scriptOutputFilePath |
256文字以内の半角英数字。および「.」,「¥」,「:」。ただし,末尾の「¥」を除く。 |
vmware.deleteScriptEnabled |
次の値のどれかを選択する。 yes,no |
フロー仕様詳細
フロー仕様詳細を次の表に示します。
階層 |
[タスク詳細]画面での表示名 |
ステップ名 |
部品 |
||
---|---|---|---|---|---|
部品名 |
説明 |
エラー時の回復方法 |
|||
1 |
vCenterサーバ経由でのスクリプト送信 |
vCenterサーバ経由でのスクリプト送信 |
vCenterサーバ経由でのファイル送信 |
指定したファイルを実行対象サーバから仮想サーバのゲストOSに送信します。 |
エラーの原因を取り除いたあと,サービスを再実行して下さい。 |
2 |
vCenterサーバ経由でのスクリプト実行 |
vCenterサーバ経由でのスクリプト実行 |
vCenterサーバ経由でのスクリプト実行 |
仮想サーバのゲストOS上に送信された非対話型のスクリプトファイルを実行します。 |
エラーの原因を取り除いたあと,このステップから実行するかサービスを再実行して下さい。 |
3 |
スクリプト削除要否確認 |
スクリプト削除要否確認 |
値判定分岐部品 |
仮想サーバのゲストOS上に送信されたスクリプトファイルを削除するかを判定します。 |
− |
4 |
vCenterサーバ経由でのスクリプト削除 |
vCenterサーバ経由でのスクリプト削除 |
vCenterサーバ経由でのファイル削除 |
仮想サーバのゲストOS上に送信されたスクリプトファイルを削除します。 |
エラーの原因を取り除いたあと,このステップから実行するかサービスを再実行して下さい。 |