VMware powerCLI + Power Shell 대량 복제 가상 머 신 구현

4092 단어 일상 업무작업
- 회사 가 VMware 클 라 우 드 플랫폼 이 없 었 을 때 새로운 가상 머 신 을 만 들 때 수 동 으로 템 플 릿 에 따라 복 제 했 습 니 다. 마우스 조작 점, 다음 단계, 다음 단계, 등 중복 작업 을 했 습 니 다. 한두 대 는 점 을 찍 지 않 았 으 면 좋 겠 습 니 다.하루 에 몇 십 대 를 만 들 려 면 매주 몇 백 대 씩 이렇게 조금씩 미 쳐 야 합 니 다. 많은 뇌 세 포 를 폐기 하고 만 든 스 크 립 트 는 지금 은 사용 할 수 없 지만 다음 과 같이 제 환경 windosServer R2 에서 실행 되 는 VMware powerCLI 6.0 (네트워크 는 Vcenter 와 연결 되 어야 합 니 다)
기능: 많은 템 플 릿 을 기록 해서 지 웠 을 뿐 중복 되 는 코드 가 많 습 니 다. 주로 이것 입 니 다. switch 구문 에 Vcenter 환경 과 템 플 릿 을 추가 할 수 있 습 니 다.
용법: 스 크 립 트 를 실행 한 후 로그 인 할 Vcenter 환경 (개발, 테스트, 생산) 을 선택 하 십시오. > 가상 컴퓨터 를 복제 할 근거 가 있 는 템 플 릿 을 선택 하 십시오. > 설정 할 가상 컴퓨터 IP 의 끝 (그림 1, 243 - 243 복제 한 대) 또는 243 - 250 (192.168.100.243 - 192.168.100.100.250 복제 8 대) 을 선택 하여 리 턴 을 확인 하 십시오.
PowerShell 코드 는 다음 과 같 습 니 다.
#       
$NJPLResourcePool="Dell_Cluster01"
$Script:NJPLResourcePool
$NJPLdataStore="DISK04"
$Script:NJPLdataStore
$NJPLvmName_prefix="NJPL014"
$Script:NJPLvmName_prefix
$NJPLvmIP_prefix ="192.168.100"
$Script:NJPLvmIP_prefix
$NJPLvmIP_mask ="255.255.255.0"
$Script:NJPLvmIP_mask
$NJPLvmIP_gateway ="192.168.100.1"
$Script:NJPLvmIP_gateway
$VCSAResourcePool="Cluster02"
$Script:VCSAResourcePool
$VCSAdataStore="vsanDatastore (1)"
$Script:VCSAdataStore
$VCSAvmName_prefix="NJPL020"
$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 FNJPL4C8G30G()
{
$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="$NJPLvmIP_prefix.$i"
$vmName="$NJPLvmName_prefix$i"
$custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $vmIP -SubnetMask $NJPLvmIP_mask -DefaultGateway $NJPLvmIP_gateway
New-VM -ResourcePool $NJPLResourcePool -Name $vmName -Template $vmTemplate -Datastore $NJPLdataStore -OSCustomizationspec $custSysprep
$i=$i+$vmIPstep
Get-VM -Name $vmName | Start-VM
}
$custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode PromptUser -SubnetMask $NJPLvmIP_mask -DefaultGateway $NJPLvmIP_gateway
}s
function C7FNJPL8C8G30G()
{
$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="$NJPLvmIP_prefix.$i"
$vmName="$NJPLvmName_prefix$i"
$custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $vmIP -SubnetMask $NJPLvmIP_mask -DefaultGateway $NJPLvmIP_gateway
New-VM -ResourcePool $NJPLResourcePool -Name $vmName -Template $vmTemplate -Datastore $NJPLdataStore -OSCustomizationspec $custSysprep
$i=$i+$vmIPstep
Get-VM -Name $vmName | Start-VM
}
$custSysprep | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode PromptUser -SubnetMask $NJPLvmIP_mask -DefaultGateway $NJPLvmIP_gateway
}

#    
function FNJPL()
{
Connect-VIServer -Server 192.168.1.200 -User "[email protected]" -Password "Vcenterpasswd"
$FNJPL_CONFIG_ENV=Read-Host "
(1) RHEL6.8_4U_8G_30G
(2) Centos7_8U_8G_30G

           (1/2/3/4/5/6) "
switch($FNJPL_CONFIG_ENV)
{
1 {FNJPL4C8G30G}
2 {C7FNJPL8C8G30G}

Default{"       ,     !"}
}
}

#    
$NJPL_Virtual_ENV=Read-Host "
(1) SIT  
(2)     
(3)     

        (1/2/3) "
switch($NJPL_Virtual_ENV)
{
1 {TEST} #SIT  
2 {DEVOP}#    
3 {FNJPL}#    
Default{"       ,     !"}
}

좋은 웹페이지 즐겨찾기