2016年4月9日土曜日

インスタントクローンを使ってみよう その2(スクリプト実行)

Horizon View 7がリリースされ、いよいよインスタントクローンが正規に利用できるようになりましたが、PowerShellでの実装方法もあります。

あらかじめ、PowerCLIをインストールしておきましょう。
https://my.vmware.com/group/vmware/details?downloadGroup=PCLI630R1&productId=491

その後、FLINGSから、Extenstionをダウンロードして、PowerShellで利用できるようにします。

ダウンロード先
https://labs.vmware.com/flings/powercli-extensions

注意する必要があるのは、このExtensionは、PowerCLI6.3 R1用とそれ以外のモデルと別れています。新しくPowerCLIをインストールする場合現在は、PowerCLI6.3しかダウンロードできませんので、こちらをダウンロードする必要があります。



ダウンロードしたZIPファイルを開くと、「VMware.VimAutomation.Extensions」のフォルダを、Modulesフォルダはいかに配置します。
通常ですと、x64の場合、
C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Modules
配下に置くことになります。


さて、インスタントクローンを作る上での注意点ですが
  • インスタントクローンのマスター(親)となるVMは、OSを起動しておきましょう。
  • VMware Toolsは、コマンド実行の観点から、バージョン10からのサポートとなります。
  • あとは、vSphere6 Update1から正式に動作します。
    (vSphere6のUpdate無しですと、正常に動作しません)

を、あらかじめ押さえておきましょう。



さて、準備ができたら、以下のコマンドを流しましょう。

import-module VMware.VimAutomation.Core
import-module VMware.VimAutomation.Extensions

#vCenterServer IP
$ovCenterIP = "192.168.XX.YY"  #vCenter ServerのIPアドレス
#インスタントクローンの元VM
$parentVM = "InstantMaster-VM" #マスター(親)のVM名
#ゲストのログインユーザー/パスワード
$parentVMUser = "domain\administrator"  #ドメインのユーザー
$parentVMPass = "password"              #ドメインパスワード
#インスタントクローンVM名称
$childVMNameMaster = "InstantChild"     #子(チャイルド)VMの頭につける名称

#インスタントクローン設定情報
#IP設定用情報配列を作成
$childConfigSettings = @(0..2)

#IP設定情報
$childConfigSettings[0] = @{
 'ipaddress' = "192.168.XXX.YY1";
 'netmask'   = "255.255.255.0";
 'gateway’  = "192.168.XXX.254";
 'dns'       = "192.168.XXX.253";
}

$childConfigSettings[1] = @{
 'ipaddress' = "192.168.XXX.YY2";
 'netmask'   = "255.255.255.0";
 'gateway’  = "192.168.XXX.254";
 'dns'       = "192.168.XXX.253";
}

$childConfigSettings[2] = @{
 'ipaddress' = "192.168.XXX.YY3";
 'netmask'   = "255.255.254.0";
 'gateway’  = "192.168.XXX.254";
 'dns'       = "192.168.XXX.253";
}


#vCenterServerのIPとユーザー名
Connect-VIServer -Server $ovCenterIP -User administrator@vsphere.local -Password vCenterServerのパスワード

#インスタントクローンを有効化
↓仮想マシンにバッチファイルを用意してそれを実行する場合は--PostCloneScriptをつける
#$parentForkVM = Enable-InstantCloneVM -VM $parentVM -guestUser $parentVMUser -GuestPassword $parentVMPass -PostCloneScript C:\temp\WindowsPostScript.bat 
$parentVM = Get-VM $parentVM
$parentForkVM = Enable-InstantCloneVM -VM $parentVM -guestUser $parentVMUser -GuestPassword $parentVMPass
#$parentForkVM = Get-VM $parentVM

#インスタントクローン開始
for($i=0;$i -lt 3;$i++)
{
    $childVMName = $childVMNameMaster+$i
    $childForkVm = New-InstantCloneVM -ParentVM $parentForkVM -Name $childVMName -ConfigParams $childConfigSettings[$i]
}

#電源ON
for($i=0;$i -lt 3;$i++)
{
    $childVMName = $childVMNameMaster+$i
    Get-VM $childVMName | Start-Vm -RunAsync
}

#vCenter Serverから切断
disConnect-VIServer -Confirm:$False


これでインスタントクローンが体験できます。
ちなみに、これはvCenter Serverを経由してスクリプトを実行していますが、どうやらESXi直接続でもいけそうな気がします...。


0 件のコメント:

コメントを投稿