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

4 Kommentare bisher »

  1. Posemuck sagt

    am 4. Dezember 2007 @ 09:53

    Sehr gutes How-to, Danke!

  2. rene46 sagt

    am 2. April 2008 @ 13:19

    Super HowTo, Danke!

  3. 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!

  4. 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.

Komentar RSS · TrackBack URI

Hinterlasse einen Kommentar

Name: (erforderlich)

eMail: (erforderlich)

Website:

Kommentar: