使用PowerCLI给ESXi批量设置时间和配置NTP

在现代企业业务系统或生产中,时间同步很重要。现在VMware的虚拟化应用非常广泛,给ESXi宿主机一个统一准确的时间,也给客户机系统一个准确的时间。

环境中有很少主机可以手动设置,但是到了10几台甚至更多,手动设置慢还容易出错。好吧,相信你也比较懒,懒人有懒办法。

关于VMware PowerCLI是什么东西,以及如何安装,在 命令行操作vSphere–VMware PowerCLI安装 这篇文章里有详细介绍,此处不再叨叨啦。

原理嘛就是用PowerCLI连接到VC上边去,给ESXi下发配置并配置重启ntp,ESXi所有的高级设置都可以设置,我发现真是个好东西!

好了,下面就直接丢代码出来了。下面介绍了一次性设置时间和设置NTP两种方式,各取所需。当然,都是全自动的。

#连接VC
$VC='192.168.xx'
$UName='[email protected]'
$UPass='yourpass'
Connect-VIServer -Server $VC -User $UName -Password $UPass

#更改主机时间
Foreach($HostIP in Get-VMHost){
	$esxcli = Get-EsxCli -VMHost $HostIP -V2
	$arguments = $esxcli.system.time.set.CreateArgs()
	$arguments.year = $(Get-Date -Format 'yyyy')
	$arguments.month = $(Get-Date -Format 'MM')
	$arguments.day = $(Get-Date -Format 'dd')
	$arguments.hour = $(Get-Date -Format 'HH')-8
	$arguments.min = $(Get-Date -Format 'mm')
	$esxcli.system.time.set.Invoke($arguments)
}
#设置NTP
Foreach($HostIP in Get-VMHost){
	Add-VmHostNtpServer -NtpServer "120.25.115.20" -VMHost $HostIP
	Add-VmHostNtpServer -NtpServer "ntp1.aliyun.com" -VMHost $HostIP
	Get-VMHostService -VMHost $HostIP | where { $_.Key -eq "ntpd" } | Start-VMHostService
	Get-VMHostService -VMHost $HostIP | where { $_.Key -eq "ntpd" } | Set-VMHostService -Policy "on" -Confirm:$false
}
#查询主机时间
Foreach($HostIP in Get-VMHost){
	$esxcli = Get-EsxCli -VMHost $HostIP -V2
	$esxcli.system.time.get.Invoke()
}

  

Get-VMHost获取的是当前VC下边的所有主机,作用范畴也是当前VC下边的所有主机。

解读:第一个代码块是连接VC,第二个是获取你本机的当前时间设置到ESXi主机,第三个是设置NTP并重启服务与设置开机自启,第四个是查询下各主机时间。懂点编程或聪明点的小伙伴一看就懂了!

猜你喜欢

转载自www.cnblogs.com/zilong666/p/11032564.html