12-02 9 views
——在公司没有VMware云平台之前的那段时间,创建新虚拟机的时候都是手动根据模板来克隆,鼠标操作点点点、下一步、下一步、等重复操作,一两台无所谓点点点就好了;若是一天就要创建几十台每周几百台都要这么点点点 那感觉很不爽。。,废了不少脑细胞弄出来的脚本虽然现在用不到了,记录下,如下
我的环境
windosServerR2中运行的VMware powerCLI6.0(网络要和Vcenter相通)
功能
只是记录去掉了很多模板,很多都是重复的代码主要就这些,可以在switch语句中添加Vcenter环境和模板
用法
运行脚本后选择要登录的Vcenter环境(开发、测试、生产)——>选择要克隆虚拟机要依据的模板 ——> 选择要配置的虚拟机IP的末位(如图1,243-243 克隆一台 )或者243-250(192.168.100.243-192.168.100.250克隆8台)确定回车
PowerShell代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
#生产环境全变量 $HZPLResourcePool="Dell_Cluster01" $Script:HZPLResourcePool $HZPLdataStore="DISK04" $Script:HZPLdataStore $HZPLvmName_prefix="HZPL014" $Script:HZPLvmName_prefix $HZPLvmIP_prefix ="192.168.100" $Script:HZPLvmIP_prefix $HZPLvmIP_mask ="255.255.255.0" $Script:HZPLvmIP_mask $HZPLvmIP_gateway ="192.168.100.1" $Script:HZPLvmIP_gateway $VCSAResourcePool="Cluster02" $Script:VCSAResourcePool $VCSAdataStore="vsanDatastore (1)" $Script:VCSAdataStore $VCSAvmName_prefix="HZPL020" $Script:VCSAvmName_prefix $VCSAvmIP_prefix ="192.168.200" $Script:VCSAvmIP_prefix $VCSAvmIP_mask ="255.255.255.0" $Script:VCSAvmIP_mask $VCSAvmIP_gateway ="192.168.200.1" $Script:VCSAvmIP_gateway #以模板配置命名的函数 function FHZPL4C8G30G() { $vmTemplate="RHEL6.8_4U_8G_30G201880517" $vmIPstep =1 $IPstart=Read-Host "请输入IP末尾 开始 IP" $IPEnd=Read-Host "请输入IP末尾 结束 IP" Write-Host '确 认 ? 请按任意键继续!!' -NoNewline $null = [Console]::ReadKey('?') $custSysprep = Get-OSCustomizationSpec Rhel6.8113P $i=[int]$IPstart while (($i -ge [int]$IPstart) -and ($i -le [int]$IPEnd)) { $vmIP="$HZPLvmIP_prefix.$i" $vmName="$HZPLvmName_prefix$i" $custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $vmIP -SubnetMask $HZPLvmIP_mask -DefaultGateway $HZPLvmIP_gateway New-VM -ResourcePool $HZPLResourcePool -Name $vmName -Template $vmTemplate -Datastore $HZPLdataStore -OSCustomizationspec $custSysprep $i=$i+$vmIPstep Get-VM -Name $vmName | Start-VM } $custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode PromptUser -SubnetMask $HZPLvmIP_mask -DefaultGateway $HZPLvmIP_gateway }s function C7FHZPL8C8G30G() { $vmTemplate="Centos7_8U_8G_30G_20180427" $vmIPstep =1 $IPstart=Read-Host "请输入IP末尾 开始 IP" $IPEnd=Read-Host "请输入IP末尾 结束 IP" Write-Host '确 认 ? 请按任意键继续!!' -NoNewline $null = [Console]::ReadKey('?') $custSysprep = Get-OSCustomizationSpec Rhel6.8113P $i=[int]$IPstart while (($i -ge [int]$IPstart) -and ($i -le [int]$IPEnd)) { $vmIP="$HZPLvmIP_prefix.$i" $vmName="$HZPLvmName_prefix$i" $custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $vmIP -SubnetMask $HZPLvmIP_mask -DefaultGateway $HZPLvmIP_gateway New-VM -ResourcePool $HZPLResourcePool -Name $vmName -Template $vmTemplate -Datastore $HZPLdataStore -OSCustomizationspec $custSysprep $i=$i+$vmIPstep Get-VM -Name $vmName | Start-VM } $custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode PromptUser -SubnetMask $HZPLvmIP_mask -DefaultGateway $HZPLvmIP_gateway } #生产环境 function FHZPL() { Connect-VIServer -Server 192.168.1.200 -User "administrator@vsphere.local" -Password "Vcenterpasswd" $FHZPL_CONFIG_ENV=Read-Host " (1) RHEL6.8_4U_8G_30G (2) Centos7_8U_8G_30G 请输入克隆虚拟机的配置(1/2/3/4/5/6) " switch($FHZPL_CONFIG_ENV) { 1 {FHZPL4C8G30G} 2 {C7FHZPL8C8G30G} Default{"没有相应的配置,请重新输入!"} } } #第一执行 $HZPL_Virtual_ENV=Read-Host " (1) SIT环境 (2) 开发环境 (3) 生产环境 请输入你克隆环境(1/2/3) " switch($HZPL_Virtual_ENV) { 1 {TEST} #SIT环境 2 {DEVOP}#开发环境 3 {FHZPL}#生产环境 Default{"没有该虚拟环境,请重新输入!"} } |
–
–