2016年6月8日 星期三

VMware PowerCLI:使用客製化回應檔複製多台虛擬機

在虛擬化的環境中,我們可以很方便的佈署或是複製虛擬機,但當有大量的虛擬機需要佈署或複製,這時候我們就可以透過VMware vSphere PowerCLI。
VMware vSphere PowerCLI是一個建立在以Windows PowerShell為基礎的命令管理工具,其中包括相當多管理虛擬機的指令。本文內容為使用PowerCLI複製多台虛擬機。

 前置作業

  • 此例使用的軟體版本為 VMware vSphere PowerCLI 6.3 release 1
  • 安裝完後會有32 bit和64 bit兩個執行路徑,因為會使用到客製化回應檔的功能,所以只能在32 bit vSphere PowerCLI執行
  • 開啟vSphere PowerCLI時,若看到「因為這個系統上已停用指令碼執行...」的錯誤,執行此指令更改執行原則:
Set-ExecutionPolicy remotesigned
更改後再重新開啟vSphere PowerCLI就可以正常運作了

PowerCLI指令

  • Connect-VIServer
連到vCenter
  • Get-OSCustomizationSpec
在此例的環境已經事先建立一個名稱為Win10的客製化回應檔
  • New-OSCustomizationSpec
複製一個客製化回應檔,類型為NonPersistent (即關閉程式後就會不見)
  • Get-OSCustomizationNicMapping
查看客製化回應檔中的網路設定,目前為採用DHCP
  • Set-OSCustomizationNicMapping
修改網路設定為固定IP
  • New-VM
從Windows10複製出一台名稱為CloneVM虛擬機,並且套用客製化回應檔

Scirpts

為了讓複製出來的虛擬機都有特定的名稱和固定IP,因此還需要搭配.CSV檔案使用,.CSV檔案內容如下圖
以下為此例所用的Script
#Connect to vcenter
Connect-VIServer 172.26.93.13
#建立一個暫存的客製化回應檔
$temp = Get-OSCustomizationSpec Win10 | New-OSCustomizationSpec -Type NonPersistent -name tmp
#讀取CSV檔案
Import-Csv "C:\Users\Yujung\Desktop\test.csv" | %{
#將VM名稱和固定IP帶入客製化回應檔
$name = $_.Vm
$IP = $_.Ipaddr
$temp | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIP -Ipaddress $IP -SubnetMask 255.255.128.0 -DefaultGateway 172.26.1.1 -Dns 172.26.93.10
#複製VM
Get-VM Windows10 | New-VM -Name $name -VMHost 172.26.93.1 -Datastore datastore1 -OSCustomizationSpec $temp
#VM開機
Start-VM $name
}

Scripts執行過程
vCenter Tasks狀態

參考連結

沒有留言:

張貼留言