Posts tagged ‘esx’

VMware ESXi 4.0 – SSH (re) aktivieren

VMware ESXi 4.0 – SSH (re) aktivieren
SSH Zugriff auf ESX Server ist etwas an das man sich gewähnt hat und das man oftmals auch braucht. Leider hat VMware beim ESXi 4 eben diesen SSH Zugriff deaktiviert. Selbst an die Konsole, also den Linux Teil des ESX, kommt man nur mir Tricks.

Leider sind diese Tricks durch VMware in keinster Weise supported, aber was stört das, wenn dafür SSH und Konsole auf dem ESXi wieder benutzbar werden?

Trick 1: Zugriff auf die Konsole nehmen
Sobald der ESXi Server hochgefahren ist, also der “Wellcomescreen” zu sehen ist, direkt am VMware ESXi Server auf der Tastatur ALT-F1 drücken, nicht wundern das man keinen Cursor sieht und das Wort “unsupported” ohne “” eintippen, die Eingabe mit ENTER bestätigen. Wenn man sich nicht vertippt hat, wird nun das Rootkennwort abgefragt -> eingeben und hat Zugriff auf die Konsole des ESXi Servers!

Trick 2: SSH (re)aktivieren
Sobald man sich wie in Trick 1 beschrieben Zugriff auf die ESXi Konsole ermöglicht hat, öffnet man sich direkt auf dem VMware ESXi mit dem vi die Datei /etc/inetd.conf
Hier entfernt man mit dem vi an den beiden Zeilen für SSH das führende # (einfach den Cursor dort hinbewegen und einmal x drücken, danach bei Zeile 2 das Ganze einfach nochmal, speicher und beenden des vi geht mit :wq – den Doppelpunkt wirklich mittippen!). Danach sollte die Sektion in etwa so aussehen:

# Remote shell access #
ssh stream tcp nowait root /sbin/dropbearmulti dropbear ++min=0,swap,group=shell -i -K60
ssh stream tcp6 nowait root /sbin/dropbearmulti dropbear ++min=0,swap,group=shell -i -K60

Nun am besten den VMware ESXi Server durchbooten, um die Änderungen wirksam werden zu lassen. Sollte ein Reboot des Systems nicht so einfach möglich sein (das soll ja bei produktiven Servern manchmal zu ungemütlichen Telefonanrufen führen), muß der inetd manuell neu gestartet werden.

Trick 3: inetd manuell neu starten
Zuerst muss die Prozess ID des inetd ermittelt werden. Dies macht man auch direkt auf der Konsole des VMware ESXi, mit dem Kommando:

ps aux |grep inetd

Die Ausgabe des Kommandos sollte in etwa so aussehen:

4896 4896 busybox inetd

Die erste und zweite Spalte der Ausgabe ist die Prozess ID! Diesen Prozess beenden wir dann manuell mit dem Kommando:

kill -HUP PID

Wobei PID für die zuvor ermittelte Prozess ID steht! Nun sollte der SSH Zugriff funktionieren. Alles weitere was man nun machen muß um sich per SSH mit dem VMware ESXi Server zu verbinden, solltet ihr selbst wissen ;)

VMware: Hängende Virtuelle Maschine hart stoppen

VMware FirenlogoManchmal bleiben auch bei VMware Systemen VM´s einfach hängen. Im ersten Schritt sollte man schauen, ob die entsprechende VMware VM nur im VMware vCenter noch als angeschaltet steht, sollte der VMware ESX selbst (via “esxtop” einfach per SSH nachsehen) die VMware VM bereits als offline sehen, hilft nur warten. Im Fall das die VMware VM auch hier noch als aktiv / online gelistet wird, kann man versuchen die VMware VM per SSH Konsole sanft zu beenden (nicht gleich den Kill einläuten! Das sollte immer der letzte Weg sein):

vmware-cmd /vmfs/volumes/[VMname].vmx stop

Sollte das nicht funktionieren sollte man einen “Hard Stop” versuchen (nicht gleich den Kill einläuten! Das sollte immer der letzte Weg sein):

vmware-cmd /vmfs/volumes/[VMname].vmx stop hard

Ich hatte nun einen Fall wo dies auch nicht mehr half. Die VMware VM wollte absolut nicht aus gehen und blockierte mir so mein System. (ACHTUNG – bei der nachfolgenden Methode kann es zu Datenverlust in der hängenden VM kommen) Da half nur noch ein direkter “kill” des Prozesses für die VMware VM – nur wie findet man die passende Prozess ID um auch den richtigen Prozess mit dem kill zu erwischen?  Die VMware ID welche man über “esxtop” erhält ist leider nicht gleich der Prozess ID für die VMware VM auf dem System. Mittels des SSH Kommandos

ps auxfww | grep [VMname]

erhält man die gewünschte Prozess ID der VMware VM im gewohnten ps Syntax. Danach einfach über das SSH Kommando “kill” den Prozess direkt abschießen:

kill -9 [PID]