Automatischer Zeitabgleich VMware ESX Server
Um einen sauberen Zeitabgleich per NTP sicher zu stellen, sind einige kleinere Arbeiten am ESX Server zu machen.
Meist muss als erstes die richtige Zeitzone eingestellt werden. Dazu per SSH Client (z.B. Putty) auf der Konsole als User root einloggen. Wenn dabei, trotz richtiger Anmeldedaten der User root ein Access denied bekommt, liegt das an einer Einstellung des SSH Dienstes auf dem ESX Server. Diese bewirkt, dass der root sich nicht direkt per SSH anmelden kann. Das heißt, zuerst einen anderen User mit Bashrechten anmelden, und mit “su” + Rootpasswort als root einloggen.
Ich persönlich halte diese Einstellung bei einem öffentlichen System aus Sicherheitsgründen für SSH generell für gut. Steht der Server hingegen gut geschützt, kann man diese auch wie folgt deaktivieren:
Änderung der Datei /etc/ssh/sshd_config:
Zeile
PermitRootLogin no
in
PermitRootLogin yes
ändern.
Danach per /etc/init.d/ssh restart den SSH Dienst neu starten. Der direkte Login als root funktioniert nun.
Um nun die Zeitzone einzustellen, einen Symlink wie folgt setzen (eigene Zone ggf. anpassen)
ln -sf /usr/share/zoneinfo/Europe/Berlin/etc/localtime
Nun kann in der Datei /etc/ntp.conf ein schon vorhandener NTP Server eingestellt werden, von dem die Zeit abgeglichen wird. Dazu im Editor öffnen z.B:
vi /etc/ntp.conf
und im Abschnitt
# — OUR TIMESERVERS —–
nach
# restrict mytrustedtimeserverip mask 255.255.255.255 nomodify notrap noquery
# server mytrustedtimeserverip
suchen. Diesen nun auf den eigenen Server anpassen und durch entfernen der # aktivieren, als Beispiel:
restrict 111.222.333.444 mask 255.255.255.255 nomodify notrap noquery
server 111.222.333.444
weitere Server immer mit diesen 2 Zeilen. Danach die Datei /etc/ntp/step-tickers bearbeiten, und Zeilenweise die gleichen Timeserver eintragen.
Einen Test, ob die Zeiten abgefragt werden können, mit
ntpdate -q 111.222.333.444
durchführen. Erscheint dabei eine Meldung ala “ntpdate[....]: sendto(111.222.333.444): Operation not permitted”, könnte eine mögliche Ursache der nicht geöffnete Port an der Firewall des ESX Servers sein. Dieser kann mit folgendem Befehl freigeschaltet werden (m.E. ab ESX 3.x)
esxcfg-firewall --enableService ntpClient
Danach den Test erneut ausführen. Die momentane Systemzeit kann per Eingabe von “date” auf der Konsole angezeigt werden. Funktioniert dieser wie gewünscht, kann der ntp Dienst wieder per
/etc/init.d/ntpd start
gestartet werden.
Um diesen jetzt noch bei jedem Booten mitstarten zu lassen, folgende Zeilen verwenden:
chkconfig --level 345 ntpd on
Wenn die Systemzeit stimmt, kann man die Hardwareuhr im BIOS mit
hwclock --systohc
auf diese Zeit abgleichen.
Damit die Systemzeit der Virtuellen Maschinen stimmt, im VMwaretool die Option zum abgleichen aktivieren!
Links:
Putty: Download SSH Client
























Posemuck sagt
am 4. Dezember 2007 @ 09:53
Sehr gutes How-to, Danke!
rene46 sagt
am 2. April 2008 @ 13:19
Super HowTo, Danke!
Audioslave sagt
am 13. Mai 2008 @ 10:45
Sehr gutes How-To, danke!
Aber ein kleiner Tippfehler hat sich eingeschlichen:
/etc/init.d/ntp start -> muss /etc/init.d/ntpd start
Mario schreibt: Danke für den Tipp, habe ich gerade angepasst!
Martina Bernet sagt
am 18. März 2009 @ 22:10
Wenn bei ntpdate ein “Operation not permitted” kommt, einfach den Parameter -s addieren, dann klappt es.