We recently upgraded our NTP infrastructure and I had to reconfigure 46x ESXi 5.0 hosts to reflect this change. I’m not keen on doing these types of operations manually so I wrote this script to automate the process.
I’m sure there are definitely more elegant scripts available, but this one works perfectly well. Just change the highlighted rows to reflect your own environment;
PowerShell Script;
## START ## Clear-Host ## Connect to vCenter $vcenter = 'myvcenter.mydomain.fqdn' Write-Host "Connecting to $vcenter" -ForegroundColor Green Connect-VIServer $vcenter | Out-Null ## OLD NTP servers $ntp1_old = 'old.ntp.server1' $ntp2_old = 'old.ntp.server2' $ntp3_old = 'old.ntp.server3' $ntp4_old = 'old.ntp.server4' ## NEW NTP servers $ntp1_new = 'new.ntp.server1' $ntp2_new = 'new.ntp.server1' $ntp3_new = 'new.ntp.server1' ## Hosts to Configure $vmHosts = Get-Datacenter 'MY-DC' | Get-Cluster 'MY-CLUSTER' | Get-VMHost * ## Action for Each Host ForEach ($vmHost in $vmHosts) { Write-Host $vmHost -BackgroundColor Red ## Remove existing NTP servers Write-Host " - Removing existing NTP servers" -ForegroundColor Yellow Remove-VmHostNtpServer -NtpServer $ntp1_old -VMHost $vmHost -Confirm:$false | Out-Null Remove-VmHostNtpServer -NtpServer $ntp2_old -VMHost $vmHost -Confirm:$false | Out-Null Remove-VmHostNtpServer -NtpServer $ntp3_old -VMHost $vmHost -Confirm:$false | Out-Null Remove-VmHostNtpServer -NtpServer $ntp4_old -VMHost $vmHost -Confirm:$false | Out-Null ## Add new NTP servers Write-Host " - Adding New NTP servers" -ForegroundColor Green Add-VmHostNtpServer -NtpServer $ntp1_new -VMHost $vmHost | Out-Null Add-VmHostNtpServer -NtpServer $ntp2_new -VMHost $vmHost | Out-Null Add-VmHostNtpServer -NtpServer $ntp3_new -VMHost $vmHost | Out-Null ## Restart NTP Service Write-Host " - Restarting the NTP service" -ForegroundColor Yellow Get-VmHostService -VMHost $vmHost | Where-Object {$_.key -eq "ntpd"} | Restart-VMHostService -Confirm:$false | Out-Null ## Update Complete Write-Host " - NTP Servers updated" -ForegroundColor Green Write-Host "" } ## Disconnect from vCenter Disconnect-VIServer -Server * -Force -Confirm:$false -ErrorAction SilentlyContinue | Out-Null ## END ##
35,197 total views, 1 views today