使用PowerCLI給ESXi批量設置時間和配置NTP


在現代的各種業務系統中,時間同步很重要。現在VMware的虛擬化解決方案應用非常廣泛,給ESXi宿主機一個統一准確的時間,也給客戶機系統一個准確的時間。

生產環境中主機數量少的話倒是可以手動設置,但是到了十幾台甚至更多,手動設置費時費力還容易出錯。好吧,相信你也比較懶。但是我們懶人有懶辦法呀。

關於VMware PowerCLI是什么東西,以及如何安裝,在 命令行操作vSphere--VMware PowerCLI安裝 這篇文章里有詳細介紹,此處不再叨叨啦。

原理嘛就是用PowerCLI連接到VC上邊去,給ESXi下發配置並配置重啟ntp,ESXi所有的高級設置都可以設置,我發現PowerCLI真是個好東西!

好了,下面就直接丟代碼出來了。下面介紹了一次性設置時間和設置NTP兩種方式,各取所需。當然,都是全自動的。推薦架設內網NTP的方式。

#連接VC
$VC='192.168.xx'
$UName='administrator@vsphere.local'
$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並重啟服務與設置開機自啟,第四個是查詢下各主機時間。相信小伙伴們一看就懂了!

此處demo中的主機是用的IP標識的,建議使用DNS名稱來區分標識主機。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM