NTP via PowerCLI

NTP Server setzen via PowerCLI.

Manchmal kommt es vor, dass man sich nicht einig ist, welcher NTP den es nun sein soll. Wenn man aber gerne alles homogen haben möchte, bietet die PowerCLI aber genau die richtigen Befehle.

#Read NTP Server
Get-VMHost 'HOSTNAME' | Where-Object {$_.PowerState -eq 'PoweredOn'} | Get-VMHostNtpServer

Damit kann man sich von jedem Host die eingetragenen NTP-Server ausgeben lassen. Um eine Liste alle NTP-Server zu erhalten, die im Umlauf sind, kann der Parameter 'HOSTNAME' auch einfach weggelassen werden.

#Remove all NTP Server
Get-VMHost | Where-Object {$_.PowerState -eq 'PoweredOn'} | ForEach-Object {
     Get-VMHost $_.Name | Remove-VMHostNtpServer (Get-VMHostNtpServer -VMHost $_.Name) -Confirm:$false
}

Mit diesem Codefragment löscht man alle NTP-Servereinträge von den Hosts, welche aktuell eingeschaltet sind. Der Parameter -Confirm:$false bedeutet, wenn du Enter drückst, ist das ganze erledigt, es wird keine Rückfrage mehr gestellt, ob du dir sicher bist oder nicht. Sprich pass bitte auf was du tust.

#Set NTP Server
$str_ntpserver = '0.ch.pool.ntp.org','1.ch.pool.ntp.org'
Get-VMHost | Where-Object {$_.PowerState -eq 'PoweredOn'} | Add-VMHostNtpServer -NtpServer $str_ntpserver
Get-VMHost | Where-Object {$_.PowerState -eq 'PoweredOn'} | Get-VMHostService | Where-Object {$_.key -eq 'ntpd'} | Restart-VMHostService -Confirm:$false

Damit setzt man nun den neuen NTP-Server, oder man kann kommagetrennt mehrere Server eintragen. Anschliessend wird der Dienst ntpd Dienst neu gestartet, da ansonsten Fehler im Log entstehen werden und die Einstellungen nicht übernommen werden.

Mit einem Script wird jeden Abend eine Verbindung via Connect-VIServer eine Verbindung zum vCenter gemacht und auf sämtlichen Hosts zuerst alle NTP gelöscht und anschliessend die Settings wieder geschrieben. Somit habe ich jeden Morgen eine sicher auf allen eingeschalteten Hosts die gleichen NTP-Settings.


ACHTUNG: Schau bitte darauf, dass du das aktuelle PowerCLI installiert hast, mit den alten Versionen kam es vor, dass das Commandlet Remove-VMHostNtpServer nicht funktioniert hat.


 


Drucken