溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

VMware怎樣用powershell批量部署虛機

發(fā)布時間:2021-11-08 17:37:09 來源:億速云 閱讀:199 作者:柒染 欄目:建站服務(wù)器

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)VMware怎樣用powershell批量部署虛機,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

用CSV生成列表,名稱為.csv,抬頭如下:

Basevm
Datastore
VMhost
Custspec
VMname
Cpu
Memory
Disk1
Disk2
IPaddress
Subnet
Gateway
VLAN
Note
Centos_6.7_2017_moban_29_30
datastore-10.143.129.30
10.143.129.30
Centos6.7_Test
TA2930-01
2 4 40     65
10.143.129.*
255.255.255.0
10.143.129.1
VM Network
TA2930-01


Basevm:模板名稱
#Datastore:本地存儲名稱
#VMhost:生成的虛機所在主機
#Custspec:在VC中配置(主頁-管理-自定義規(guī)范管理器)
#VMname:主機名
#CPU\Memory\Disk:配置
#IPaddress:IP
#Subnet:子網(wǎng)掩碼
#Gateway:網(wǎng)關(guān)
#VLAN:VLAN
#Note:標記


配置文件:Config.ps1

  1. #

  2. # Module manifest for module 'CloneVMCentOS'

  3. #

  4. # Generated by: Guoyu Wang

  5. #

  6. # Email: guo***@cr***.cn

  7. #

  8. # Update: 2016/02/25

  9. #

  10. # Generated on:

  11. #

  12. # Version number of this module.

  13. $ModuleVersion = '1.8'

  14. # Author of this module

  15. $Author = 'Guoyu Wang'

  16. # Company or vendor of this module

  17. $CompanyName = ''

  18. # Copyright statement for this module

  19. $Copyright = ' (c) 2016 . All rights reserved.'

  20. # Description of the functionality provided by this module

  21. $Description = 'Profie of CloneVMCentOS.ps1'

  22. # The VMware vCenter Ip?? user, and password

  23. $VCIP='10.100.8.82'VC所在的虛機

  24. $VCuser='VC賬號'

  25. $VCPassword='VC密碼'

  26. # The Guest os user and Password

  27. $Guestuser ='root'

  28. $Guestpassword ='123456'

  29. # SMTP Server and Mail information.

  30. $EmailFrom = "******"

  31. $EmailTo = "管理員郵箱"

  32. $Subject = "VM  deploy task is finished  from VMware vCenter"

  33. $Body = "Please check all the Configuration information"

  34. $SmtpServer = "郵箱配置"

配置腳本:CloneVMCentOS6.ps1

  1. <#

  2. .SYNOPSIS

  3. Clone VM with VMware vCenter 5.x , Setup the VM's IP Address , Startup VM.

  4. .DESCRIPTION

  5. .PARAMETER ComputerName

  6. .INPUTS

  7. System.String

  8. .OUTPUTS

  9. .EXAMPLE

  10. .\CloneVMCentOS6.7

  11. .EXAMPLE

  12. .NOTES

  13. 20160603 Guoyu Wang v2.0 [+] Update to PowerCLI v6.3 and VC 6.0U2

  14. 20160331 Guoyu Wang v1.9 [+] Set only 1 nic

  15. 20160225 Guoyu Wang v1.8 [+] Add configuration file.

  16. 20151209 Guoyu Wang v1.7 [+] Add send email function.

  17. 20151130 Guoyu Wang v1.6 [+] Change the script to add networking test.

  18. 20151030 Guoyu Wang v1.5 [+] Change the script to collect the VM's  network and disk information.

  19. 20151022 Guoyu Wang v1.4 [+] Change the Copy-VMGuestFile command parameters.

  20. 20151014 Guoyu Wang v1.3 [+] Update to change the harddisk1 and harddisk2  at the same time

  21. 20151013 Guoyu Wang v1.2 [+] Add VM notes  information and change the data vmdk size

  22. 20150925 Guoyu Wang v1.1 [+] Add a new NetworkAdapter

  23. 20150922 Guoyu Wang v1.0 [+] Initial version

  24. #TAG:Creditease IT Dept

  25. Email: gu***@***e.cn

  26. #>

  27. #Step1 Load the PowerCLI

  28. If ((Get-PSSnapin -Name VMware.VimAutomation.Core -ErrorAction SilentlyContinue) -eq $null) {

  29. Try {

  30. Write-Host "Loading PowerCLI plugin , Please wait a moment..." -foregroundcolor Yellow

  31. Add-PSSnapin VMware.VimAutomation.Core

  32. $PCLIVer = Get-PowerCLIVersion

  33. If ((($PCLIVer.Major * 10 ) + $PCLIVer.Minor) -ge 51) {

  34. $null = Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -confirm:$false -Scope "Session"

  35. }

  36. }

  37. Catch {

  38. Write-Host "Unable to load the PowerCLI plugin. Please verify installation or install VMware PowerCLI and run this script again."

  39. Read-Host "Press  to exit"

  40. Exit

  41. }

  42. }

  43. #Step2 Load the Config file

  44. $FilePath = (Get-Location).Path

  45. . $FilePath\Config.ps1

  46. #Step3 Login to the vcenter

  47. $Error.Clear()

  48. Connect-VIServer -Server $VCIP  -Protocol https -User $VCuser -Password $VCPassword   -ErrorAction SilentlyContinue

  49. If ($Error.Count -ne 0){

  50. Write-Host "Error connecting vCenter server $vCenterServer, exiting" -ForegroundColor Red

  51. Exit

  52. }

  53. #Step4 Load the csv

  54. If($args.Count -eq 0){

  55. Write-Host "Usage:  .\CloneVMCentOS6.7.ps1 20150101.csv"

  56. Exit

  57. }

  58. Else {

  59. $Now = Get-Date  -Format "yyyyMMddhhmmss"

  60. $FileName = $FilePath+"\"+$Now+"-utf8.csv"

  61. Get-Content   $args   |  Out-File  $FileName  -Encoding utf8

  62. $VMlist = Import-CSV $FileName

  63. }

  64. #Step5 Clone VM

  65. Foreach ($Item in $VMlist) {

  66. $Basevm = $Item.Basevm

  67. $Datastore = $Item.Datastore

  68. $VMhost = $Item.VMhost

  69. $Custspec = $Item.Custspec

  70. $VMname = $Item.VMname

  71. $Memory = $Item.Memory

  72. $Cpu = $Item.Cpu

  73. $Disk1 = $Item.Disk1

  74. $Disk2 = $Item.Disk2

  75. $IPaddr = $Item.IPaddress

  76. $Subnet = $Item.Subnet

  77. $Gateway = $Item.Gateway

  78. $VLAN = $Item.VLAN

  79. $Note = $Item.Note

  80. #Get the Specification and set the Nic Mapping (Apply 2 DNS/WINS if 2 are present)

  81. #Get-OSCustomizationSpec $Custspec | Get-OSCustomizationNicMapping | Where-Object  {$_.Position -match "1" } |Set-OSCustomizationNicMapping -IpMode UseStaticIp -IpAddress $Ipaddr -SubnetMask $Subnet -DefaultGateway $Gateway

  82. Get-OSCustomizationNicMapping -Spec  $Custspec | Set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $Ipaddr  -SubnetMask  $Subnet  -DefaultGateway $Gateway # -Dns 172.16.1

  83. #Get-OSCustomizationSpec $Custspec | Get-OSCustomizationNicMapping | Where-Object  {$_.Position -match "2" } | Set-OSCustomizationNicMapping -IpMode UseDhcp

  84. #Clone the Basevm with the adjusted Customization Specification

  85. New-VM -Name $VMname -Datastore $Datastore -VMhost $VMhost  -OSCustomizationSpec $Custspec -Template $Basevm  -Notes $Note

  86. #Change CPU and Memory size

  87. Set-VM -VM $VMname -MemoryGB $Memory -NumCpu $Cpu -Confirm:$false

  88. #Change Disk size

  89. #Get-VM $VMname |   Get-Harddisk | Where-Object {$_.Name -match "Hard disk 1"}     | Set-HardDisk -CapacityGB $Disk1 -Confirm:$false

  90. #Get-VM $VMname |   Get-Harddisk | Where-Object {$_.Name -match "2"}     | Set-HardDisk -CapacityGB $Disk2 -Confirm:$false

  91. #Set the Network Name (I often match PortGroup names with the VLAN name)

  92. Get-VM -Name $Vmname | Get-NetworkAdapter | Set-NetworkAdapter -NetworkName $Vlan -StartConnected:$true -Confirm:$false

  93. #Get-VM -Name $Vmname | Get-NetworkAdapter -NAME "*2"| Set-NetworkAdapter -NetworkName $Vlan2 -StartConnected:$true -Confirm:$false

  94. Start-VM $VMname

  95. }


  96. #Step8 Logout

  97. Disconnect-VIServer -Server $VCIP -Force -Confirm:$false

  98. Exit

在powershell中運行:CloneVMCentOS6.ps1 列表文件.csv

上述就是小編為大家分享的VMware怎樣用powershell批量部署虛機了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI