Представляю свой скрипт по добавлению хоста ESXi к vCenter. Скрипт достаточно простой и может пригодиться на случай если вы делаете множество чистых установок ESXi с последующим добавлением сервера в vCenter, но Host Profiles не используете по различным причинам.
В период установки вы назначаете хосту hostname и конфигурируете IP адрес, все остальное скрипт сделает сам. В рассматриваемом примере используется распределенный виртуальный коммутатор.
function Add-ESXi
{
Param
(
[Parameter(Mandatory=$true, Position=0)]
[string] $ESXiName,
[Parameter(Mandatory=$true, Position=1)]
[string] $VCSA,
[Parameter(Mandatory=$true, Position=3)]
[string] $VDSName,
[Parameter(Mandatory=$true, Position=4)]
[string] $Datacenter
)
#Коннектимсся к VCSA
Write-Host 'Connecting to '$VCSA
Connect-VIServer -Server $VCSA
$Location=$Datacenter
#Добавляем хост
Add-VMHost -Name $ESXiName -Location $Location -User root -Password password -Force
# Переменные хоста и VCSA
$ESXIHost=Get-VMhost $ESXiName
$logDir="[datastore] log_folder"
$logHost="udp://loghost:514"
$VMHostModel=($ESXIHost | Get-View).Hardware.SystemInfo.Model
$VMHostModelName=$VMHostModel.ToString()
#Определяем блейд или нет, нужно если аплинки у различных моделей отличаются по номеру интерфейса.
If($VMHostModelName -eq 'blade_model')
{
Write-Host -ForegroundColor Gray 'This is Blade System, set Uplinks to vmnic0 & vmnic1'
$uplink1=Get-VMHostNetworkAdapter -VMHost $ESXIHost -Name "vmnic0"
$uplink2=Get-VMHostNetworkAdapter -VMHost $ESXIHost -Name "vmnic1"
}
elseIf($VMHostModelName -eq 'rack_model')
{
Write-Host -ForegroundColor Gray 'This is Rack System, set Uplinks to vmnic4 & vmnic5'
$uplink1=Get-VMHostNetworkAdapter -VMHost $ESXIHost -Name "vmnic4"
$uplink2=Get-VMHostNetworkAdapter -VMHost $ESXIHost -Name "vmnic5"
}
else
{
Write-host -ForegroundColor Red -BackgroundColor Black "Unknown Model"
break
}
#Задаем хосту AdvancedSettings, если нужно.
Get-AdvancedSetting -Entity $ESXIHost -Name "Syslog.global.defaultRotate" | Set-AdvancedSetting -Value 100 -confirm:$false
Get-AdvancedSetting -Entity $ESXIHost -Name "Syslog.global.defaultSize" | Set-AdvancedSetting -Value 5120 -confirm:$false
Get-AdvancedSetting -Entity $ESXIHost -Name "Syslog.global.logDir" | Set-AdvancedSetting -Value $logDir -confirm:$false
Get-AdvancedSetting -Entity $ESXIHost -Name "Syslog.global.logDirUnique" | Set-AdvancedSetting -Value true -confirm:$false
Get-AdvancedSetting -Entity $ESXIHost -Name "Syslog.global.logHost" | Set-AdvancedSetting -Value $logHost -confirm:$false
#Меняем PowerManagement на HighPerfamance
(Get-View (Get-VMHost -Name $ESXIHost | Get-View).ConfigManager.PowerSystem).ConfigurePowerPolicy(2)
#Задаем сервера NTP
Add-VmHostNtpServer -VMHost $ESXIHost -NtpServer 172.16.100.112, 172.16.100.113
#Делаем настройку FireWall для NTP
Get-VMHostFirewallException -VMHost $ESXIHost | where {$_.Name -eq "NTP client"} | Set-VMHostFirewallException -Enabled:$true
#Настраиваем службу NTP на запуск и правила ее запуска с хостом.
Get-VmHostService -VMHost $ESXIHost | Where-Object {$_.key -eq "ntpd"} | Start-VMHostService
#Сетевые переменные
$VDS=Get-VDSwitch -Name $VDSName
$vmkerneladapter=Get-VMHostNetworkAdapter -VMHost $ESXIHost -Name "vmk0"
#Добавляет хост в VDS
Add-VDSwitchVMHost -VDSwitch $VDSName -VMHost $ESXIHost
#Запихиваем физические интерфейсы в аплинки и мигрируем vmk0 интерфейс в VDS
$VDS | Add-VDSwitchPhysicalNetworkAdapter -VMHostPhysicalNic $uplink1, $uplink2 -VMHostVirtualNic $vmkerneladapter -VirtualNicPortgroup 'Vlan 3011' -Confirm:$false
#Удаляем VSS
Remove-VirtualSwitch -VirtualSwitch vSwitch0 -Confirm:$false
#Включаем на vmk0 vMotion.
$ESXIHost | Get-VMHostNetworkAdapter -Name vmk0 |Set-VMHostNetworkAdapter -VMotionEnabled $true -Confirm:$false
#Отключаемся от вицентра
disconnect-VIServer -Server $VCSA -Confirm:$false
}
$ESXi_Name='HOST_NAME' #<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Задаем имя ESXi хоста
$vcenter_name='VCSA_NAME' #<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Задаем имя вицентра
$VDS_name='VDS_Name' #<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Задаем имя вицентра
$Datacenter_name='datacenter_name' #<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Задаем имя распределенного виртуального коммутатора
#Запускаем и ждем.
Add-ESXi -ESXiName $ESXi_Name -VCSA $vcenter_name -VDSName $VDS_name -Datacenter $Datacenter_name