リファレンス マシンにゲスト エージェントをインストールすると、展開後にマシンをさらにカスタマイズできます。予約されたゲスト エージェントのカスタム プロパティを使用して、ディスクの追加やフォーマットなどの基本的なカスタマイズを実行できます。またプロビジョニングされたマシンのゲスト OS 内でゲスト エージェントが実行する独自のカスタム スクリプトを作成することもできます。

展開が完了し、カスタム仕様が実行された後で(カスタム仕様を提供した場合)、ゲスト エージェントは、展開されたマシンのすべてのカスタム プロパティを含む XML ファイル (c:\VRMGuestAgent\site\workitem.xml) を作成し、ゲスト エージェントのカスタム プロパティを使用して、割り当てられているタスクを完了します。その後、プロビジョニングされたマシンからゲスト エージェント自体を削除します。

展開されたマシンでゲスト エージェントが実行する独自のカスタム スクリプトを作成し、マシン ブループリントのカスタム プロパティを使用して、そのスクリプトの場所とスクリプトが実行される順番を指定できます。マシン ブループリントのカスタム プロパティを使用すると、カスタム プロパティ値をパラメータとしてスクリプトに渡すこともできます。

たとえば、ゲスト エージェントを使用して、展開されたマシン上で次のカスタマイズを行うことができます。

  • IP アドレスの変更

  • ドライブの追加またはフォーマット

  • セキュリティ スクリプトの実行

  • 別のエージェント(Puppet や Chef など)の初期化

コマンド ライン引数では暗号化された文字列をカスタム プロパティとして指定することもできます。これにより、ゲスト エージェントが復号化して有効なコマンドライン引数として認識可能な、暗号化された情報を格納できます。

カスタム スクリプトはマシンにローカルにインストールする必要はありません。プロビジョニングされたマシンがスクリプトの場所にネットワーク アクセスできる限り、ゲスト エージェントはスクリプトにアクセスして実行できます。これによりテンプレートをすべて再構築しなくてもスクリプトをアップデートできるため、メンテナンス コストが低減されます。

予約、ブループリントまたはゲスト エージェント スクリプトに情報を指定することにより、プロビジョニングされる仮想マシンのセキュリティ設定を行うことができます。プロビジョニングするマシンにゲスト エージェントが必要である場合は、その要件を含んだセキュリティ ルールを予約またはブループリントに追加する必要があります。たとえば、すべてのマシン間の通信を拒否するデフォルトのセキュリティ ポリシーを使用したうえで、特定のマシン間の通信を許可するためのセキュリティ ポリシーを別途設けた場合、カスタマイズ段階でゲスト エージェントが vRealize Automation と通信できなくなる可能性があります。このような問題がマシンのプロビジョニング中に発生しないようにするためには、カスタマイズ段階で通信を許可するデフォルトのセキュリティ ポリシーを使用します。

プロビジョニングされたマシンにカスタム スクリプトを実行するゲスト エージェントをインストールする場合は、該当するゲスト エージェントのカスタム プロパティがブループリントに含まれている必要があります。たとえば、クローン作成用のテンプレートにゲスト エージェントをインストールし、プロビジョニングされたマシンの IP アドレスを変更するカスタム スクリプトを作成して、そのスクリプトを共有された場所に配置する場合は、多くのカスタム プロパティをブループリントに含める必要があります。

表 1. ゲスト エージェントを使用して、プロビジョニングされたマシンの IP アドレスを変更するためのカスタム プロパティ

カスタム プロパティ

説明

VirtualMachine.Admin.UseGuestAgent

プロビジョニングされたマシンの開始時にゲスト エージェントを初期化する場合は、true に設定します。

VirtualMachine.Customize.WaitComplete

すべてのカスタマイズが完了するまで、プロビジョニング ワークフローで作業アイテムがゲスト エージェントに送信されないようにする場合は、True に設定します。

VirtualMachine.SoftwareN.ScriptPath

アプリケーションのインストール スクリプトへの完全パスを指定します。 このパスは、ゲスト OS で参照される有効な絶対パスにする必要があります。また、スクリプト ファイル名が含まれている必要があります。

パスの文字列に {CustomPropertyName} を挿入することで、カスタム プロパティ値をパラメータとしてスクリプトに渡すことができます。たとえば、名前が ActivationKey で値が 1234 のカスタム プロパティがある場合、スクリプト パスは、D:\InstallApp.bat –key {ActivationKey} となります。 ゲスト エージェントはコマンド D:\InstallApp.bat –key 1234 を実行します。その後、この値を受け入れて使用するようにスクリプト ファイルをプログラムできます。

マシン所有者名をスクリプトに渡すには、{Owner} を挿入します。

また、パスの文字列に {YourCustomProperty} を挿入すると、カスタム プロパティ値をパラメータとしてスクリプトに渡すことができます。たとえば、値 \\vra-scripts.mycompany.com\scripts\changeIP.bat を入力すると、共有された場所から changeIP.bat スクリプトが実行されますが、値 \\vra-scripts.mycompany.com\scripts\changeIP.bat {VirtualMachine.Network0.Address} を入力すると、changeIP スクリプトが実行され、さらに VirtualMachine.Network0.Address プロパティ値がパラメータとしてスクリプトに渡されます。

VirtualMachine.ScriptPath.Decrypt

適切にフォーマットされた VirtualMachine.SoftwareN.ScriptPath カスタム プロパティ ステートメントとして gugent コマンド ラインに渡される暗号化文字列を vRealize Automation が取得できるようにします。

パスワードなどの暗号化文字列をコマンドライン引数のカスタム プロパティとして指定することができます。これにより、ゲスト エージェントが復号化して有効なコマンドライン引数として認識可能な、暗号化された情報を格納できます。たとえば、VirtualMachine.Software0.ScriptPath = c:\dosomething.bat password カスタム プロパティ文字列は、実際のパスワードを含むため、安全ではありません。

パスワードを暗号化するには、vRealize Automation カスタム プロパティ(たとえば、MyPassword = password)を作成し、使用可能なチェック ボックスをオンにして暗号化を有効にします。ゲスト エージェントは、[MyPassword] エントリをカスタム プロパティ MyPassword の値に復号化し、このスクリプトを c:\dosomething.bat password として実行します。

  • カスタム プロパティ MyPassword = password を作成します。ここで、password は、実際のパスワードの値です。使用可能なチェック ボックスをオンにして暗号化を有効にします。

  • カスタム プロパティ VirtualMachine.ScriptPath.DecryptVirtualMachine.ScriptPath.Decrypt = true として設定します。

  • カスタム プロパティ VirtualMachine.Software0.ScriptPathVirtualMachine.Software0.ScriptPath = c:\dosomething.bat [MyPassword] として設定します。

VirtualMachine.ScriptPath.Decrypt を false に設定した場合、または VirtualMachine.ScriptPath.Decrypt カスタム プロパティを作成しない場合、角かっこ([ および ])内の文字列は復号化されません。

ゲスト エージェントで使用できるカスタム プロパティの詳細については、カスタム プロパティのリファレンスを参照してください。