あらかじめ、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 件のコメント:
コメントを投稿