Как создать стандартные свичи и портгруппы через PowerCLI

1) на одном хосте

connect-viserver -server <vCenter> -user <user> -password <pwd>
 Get-VMHost <Host> | New-VirtualSwitch -name <New Switch> -nic <VMNIC> (например, vmnic1)
Get-VMHost <Host> | Get-VirtualSwitch -name <New Switch> | New-VirtualPortGroup -name <New PortGroup> -vlanid <VLAN ID>

2) на всех хостах

новый свич, в нем новая подгруппа
connect-viserver -server <vCenter> -user <user> -password <pwd>
 Foreach ($vmhost in (get-cluster -name <My Cluster> | get-vmhost))
 {
  $vmhost | New-VirtualSwitch -Name <New Switch> | New-VirtualPortGroup -Name <New PortGroup>  -vlanid <VLAN ID>
 }
новая портгруппа в существующем свиче
connect-viserver -server <vCenter> -user <user> -password <pwd>

 Foreach ($vmhost in (get-cluster -name <My Cluster> | get-vmhost))
 {
  $vmhost | Get-VirtualSwitch -Name <Existing vSwitch> | New-VirtualPortGroup -Name <New PortGroup>  -vlanid <VLAN ID>
 }

3) копирование свичей с одного хоста на другой хост (интерактивный)

$VISRV = Connect-VIServer (Read-Host "Имя vCenter")
$BASEHost = Get-VMHost -Name (Read-Host "Имя ESX(i)-образца (как оно отображено в vSphere Client)")
$NEWHost = Get-VMHost -Name (Read-Host "Имя настраиваемого ESX(i) (как оно отображено в vSphere Client)")
$BASEHost |Get-VirtualSwitch |Foreach {
$vSwitch = $_
If (($NEWHost |Get-VirtualSwitch -Name $_.Name-ErrorAction SilentlyContinue)-eq $null){
       Write-Host "Creating Virtual Switch $($_.Name)"
       $NewSwitch = $NEWHost |New-VirtualSwitch -Name $_.Name-NumPorts $_.NumPorts-Mtu $_.Mtu
       $vSwitch = $_
    }
   $_ |Get-VirtualPortGroup |Foreach {
       If (($NEWHost |Get-VirtualPortGroup -Name $_.Name-ErrorAction SilentlyContinue)-eq $null){
           Write-Host "Creating Portgroup $($_.Name)"
           $NewPortGroup = $NEWHost |Get-VirtualSwitch -Name $vSwitch |New-VirtualPortGroup -Name $_.Name-VLanId $_.VLanID
        }
    }
}

Оцените статью
Настройка серверов windows и linux
Добавить комментарий