先自行安裝vmwarePowercli6.5,win7以上自帶powershell,在vcenter5.5下調試通過
另存為xxx.ps1
##########################通過模版批量部署虛擬機以下內容需要人工定義變量#######################
#Vcenter的IP
$vcenterIP ="10.40.24.3"
#ESXI的IP
$vmhost="10.40.8.2"
#該ESXI對應的存儲名稱
$dataStore="8.2_RAID5"
#使用的克隆的模版名字
$vmTemplate="linux-template10.40.24.252B"
#計算機名的前綴,不要再加一個-
$vmName_prefix="lin-42-0"
#計算機IP的前綴,不要再加一個.
$vmIP_prefix ="10.42.0"
#計算機的子網掩碼
$vmIP_mask ="255.255.255.0"
#計算機的網關
$vmIP_gateway ="10.42.0.254"
#虛擬機創建循環的步長
$vmIPstep =1
#虛擬機創建循環的起始IP地址
$IPstart=12
#虛擬機創建循環的結束IP地址
$IPEnd=12
#連接Vcenter的IP,帳號密碼
Connect-VIServer -Server $vcenterIP -User xxxx -Password xxxx
#查找自定義規范管理器里的模版
$custSysprep = Get-OSCustomizationSpec | where {$_.name -like "linux-vlan120"}
#想把虛擬機創建到哪個文件夾
$Location = "abc"
#設置當前虛擬機的網卡屬於哪個vlan
$NetworkName = "vlan120"
##########################通過模版批量部署虛擬機以上內容需要人工定義變量#######################
#IP從哪個開始
$i=$IPstart
#當IP>當前循環IP,<循環IP,才繼續執行
while (($i -ge $IPstart) -and ($i -le $IPEnd))
{
#拼接計算機IP
$vmIP="$vmIP_prefix.$i"
#拼接計算機名稱
$vmName="$vmName_prefix-$i"
#修改自定義規范管理器里的模版內容,使用靜態IP方式,IP地址,IP子網掩碼,和網關
$custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $vmIP -SubnetMask $vmIP_mask -DefaultGateway $vmIP_gateway
#創建虛擬機,哪台ESXI,計算機名,模版,數據存儲,自定義模版,以及創建到哪個文件夾下。
New-VM -vmhost $vmhost -Name $vmName -Template $vmTemplate -Datastore $dataStore -OSCustomizationspec $custSysprep -Location $Location
#設置當前虛擬機的網卡屬於哪個vlan
Get-VM -Name $vmName | Get-NetworkAdapter | Set-NetworkAdapter -NetworkName $NetworkName -Confirm:$false
#啟動當前虛擬機
Get-VM -Name $vmName | Start-VM
#循環增加一次
$i=$i+$vmIPstep
}
#恢復自定義規范管理器里的模版到默認情況,用戶自定義IP。。。
$custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode PromptUser -SubnetMask $vmIP_mask -DefaultGateway $vmIP_gateway
