Vmware Esxi批量創建虛擬機(PowerCLI)


環境:windows10
安裝方式:在線、離線
PowerCLI Version:v12.0.0

1、PowerCLI在線安裝

快捷鍵win+q搜索PowerShell,以管理員身份打開,輸入

#查找模塊
Find-Module -Name VMware.PowerCLI

#安裝模塊
Install-Module -Name VMware.PowerCLI -Scope CurrentUser

如果您希望它可供計算機的所有用戶使用,則您的PowerShell會話必須以管理員身份運行,並且將通過將Scope參數更改為AllUsers,為所有用戶自動安裝PowerCLI。

2、PowerCLI離線安裝

2.1 下載離線zip:https://code.vmware.com/web/dp/tool/vmware-powercli/

2.2 解壓到ps模塊目錄下
C:\Windows\System32\WindowsPowerShell\v1.0\Modules

2.3 打開PowerShell導入模塊
Import-Module VMware.PowerCLI

2.4 導入報錯

如果導入報錯:Import-Module : 無法加載文件 C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\VMware.VimAutomation.Sdk\VMware.VimAutomation.Sdk.psm1,因為在此系統上禁止運行腳本。有關詳細信息,請參閱 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

可能是Win10新版本中PowerShell的Execution Policies為Undefined,較嚴格,修改一下就好。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Import-Module VMware.PowerCLI

3、關閉PowerCLI提示

預操作:以下兩條執行一次以后就不用了,不然老出提示。

#關閉CEIP( Customer Experience Improvement Program 客戶體驗改進計划)
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false
#忽略證書驗證
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore

連接Vcenter:

Connect-VIServer -Protocol https -User 'administrator@vsphere.local' -Password 'yourpass' -Server 192.168.x.x
獲取主機:Get-VMHost
獲取虛擬機:Get-VM

4、准備PowerCLI腳本及表格

4.1 windows創建一個目錄test,點擊進入,創建文件esxi_batchinstall_virtual.ps1,把腳本內容拷貝進去,腳本如下:

#Author:Robin
#version:v0.1
#env:stage

$vms = Import-CSV .\DeployVM.csv
$templatenic = 'ifcfg-eth0'
$templateuser = 'root'
$templatepass = 'robinpassword'

Connect-VIServer -Protocol https -User 'administrator' -Password 'robinpassword' -Server 10.10.10.10

foreach ($vm in $vms){

      $Template = Get-Template $vm.Template

      $VMHost = Get-VMHost $vm.PhysicalHost

      $Datastore = Get-Datastore $vm.Datastore
      #新建虛擬機
      New-VM -Name $vm.Name -Template $Template -VMHost $VMHost -Datastore $Datastore -RunAsync -Location $vm.Esxidir

      Start-Sleep -s 60
      Get-VM $vm.Name| Start-VM
      Start-Sleep -s 60

      $sss='hostnamectl set-hostname '+$vm.Hostname+' && sed -i "/^IPADDR/c\IPADDR='+$vm.Ipaddr+'" /etc/sysconfig/network-scripts/'+$templatenic+' && sed -i "/^NETMASK/c\NETMASK='+$vm.Netmask+'" /etc/sysconfig/network-scripts/'+$templatenic+' && sed -i "/^GATEWAY/c\GATEWAY='+$vm.Gateway+'" /etc/sysconfig/network-scripts/'+$templatenic+' && cat /etc/sysconfig/network-scripts/'+$templatenic+' && /etc/init.d/network restart'
      #修改並重啟網卡
      Get-VM $vm.Name | Invoke-VMScript -ScriptText $sss  -GuestUser $templateuser -GuestPassword  $templatepass
}

4.2 在腳本當前目錄創建DeployVM.csv
創建的DeployVM.csv,內容有下
Name:vmware vcenter平台顯示的虛擬機名稱
Template:vmware vcenter的存在的模板名稱
PhysicaHost:vmware esxi宿主機IP地址,或者資源池
Datastore:vmware esxi存儲名稱
Ipaddr:新創建虛擬機的IP
Netmask:新創建虛擬機的子網掩碼
Gateway:新創建虛擬機的網關
Hostname:新創建虛擬機的主機名
Esxidir:vmware vcenter里面的目錄,即
DeployVM

4.3 執行腳本
當前位置按shift鍵同時右鍵點擊空白處,選擇打開PowerShell
PowerCLI script


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM