Automatisches Herunterfahren eines ESXi-Hosts pro Nacht


7

Wir haben gerade einen neuen Entwicklungsserver ausgewählt, auf den ich ESXi geladen habe.

Der Raum, in dem es sich befindet, ist tagsüber gut belüftet, aber nachts ist die Tür geschlossen und es wird dort ziemlich geröstet. Ich wurde gebeten, die Box jeden Abend herunterzufahren, da wir sie sowieso nicht benutzen werden, wenn wir nicht im Büro sind.

Gibt es eine Möglichkeit, dies zu tun?


Sie können den Server mit einem Cron-Job herunterfahren, aber wie werden Sie ihn am nächsten Tag erneut starten?
Khaled

@Khaled: Einige BIOS-Implementierungen können das automatische Einschalten planen.
Pause

1
@ Khaled Manuelles Booten wäre in Ordnung. Es ist viel einfacher, sich daran zu erinnern, es einzuschalten (wir können keine Arbeit damit machen), als es am Ende eines langen Tages auszuschalten!
Ceejayoz

Antworten:


9

Ich persönlich würde den Server laufen lassen oder ihn in eine bessere Betriebsumgebung verschieben. Dies ist möglicherweise keine Automatisierung wert.

Wenn Sie den gesamten Host herunterfahren müssen , stellen Sie bitte sicher, dass auf Ihren VMs die VMWare-Tools installiert sind (um ein ordnungsgemäßes Herunterfahren und Einschalten zu ermöglichen) und dass sie so eingestellt sind, dass sie mit dem Host gestoppt und gestartet werden .

Sie können das vCli verwenden und einen Cron-Job planen , um den Host in den Wartungsmodus zu versetzen und / oder den Host vollständig herunterzufahren. Ich würde den Host-Shutdown-Befehl wahrscheinlich am Ende des Tages nur manuell vom GUI-Client ausführen.


Kurze Nebenfrage: Ich weiß, dass Heim-VM-Lösungen wie Virtual Box die Option bieten, nur den Maschinenstatus zu speichern und später in diesen Status zu booten. Wäre dies mit ESXi möglich oder besser?
TheLQ

Ja. Sie können VMs in vSphere / ESXi anhalten / anhalten. Im Rahmen dieser Frage könnte dies ebenfalls geplant werden.
ewwhite


2

vCli wurde bereits erwähnt und ist der beste Weg, um meine Meinung zu vertreten.
Es scheint jedoch, dass Sie mit einem größeren Problem zu tun haben, dh einer Überhitzung des Serverraums. Dies muss auf einer korrekten Ebene behoben werden. Beheben Sie die HLK so schnell wie möglich, da Sie sonst Ihre Ausrüstung beschädigen können. Lesen Sie auf http://www.openxtra.co. uk / articles / skimp-server-room-ac


1
Es ist ein einzelner Server in unserem Hinterzimmer. Der Vermieter wird dort keine Klimaanlage installieren, und die Temperatur ist bei geöffneter Tür perfekt (Servertemperatur durchschnittlich 26 ° C, mindestens Lüfter). Wir lassen den Raum gerne verschlossen, wenn wir nicht im Büro sind, aber im Winter wird es warm, da sich der Thermostat in einem anderen Raum befindet. Dieser Artikel bezieht sich auf 60, 100, 200 Knotenserverräume. Wir haben eine, und sie kann ausgeschaltet werden, wenn die Tür geschlossen ist. Alle unsere Produktionsserver befinden sich in einem geeigneten Rechenzentrum.
Ceejayoz

0

Sie können es über LAN einschalten. Wenn Sie eine solche Option im ESXi-BIOS haben (normalerweise Wake On LAN- Option). Sie können also einen Zeitplan auf einem anderen Computer hinzufügen, um Ihr ESXi zu aktivieren. Vergessen Sie nicht, den automatischen Start Ihrer VMs beim Starten von ESXi zu konfigurieren. Manchmal verfügen BIOS über eine Zeitplanoption für das Einschalten des Computers.

Sie können VMware Distributed Power Management (DPM) zum Energiesparen verwenden.


Ich möchte ausschalten, kein Geld sparen oder aufwachen.
Ceejayoz

Normalerweise automatisieren die Leute gerne alle Dinge. Möglicherweise hilft Ihnen jemand beim Herunterfahren Ihres ESX. So haben Sie eine Komplettlösung.
BBK

0

Sie können den SSH-Server unter ESXi aktivieren und Ihren SSH-Schlüssel auf den Server kopieren. Lesen Sie dazu die folgenden Schritte : Überwachen Sie den LSI 3ware-RAID-Controller unter ESXi

Um dann die virtuellen Maschinen herunterzufahren und den ESXi-Server auszuschalten, würde ich einen Cronjob auf einem physischen Remote-Server planen:

20 9    12 22 * root    ssh 10.1.1.140 /sbin/shutdown.sh
30 9    12 22 * root    ssh 10.1.1.140 /sbin/poweroff

In diesem Fall fahren Sie die virtuellen Maschinen am 22. Dezember um 9:20 Uhr herunter und schalten Sie den ESXi-Server am 22. Dezember um 9:30 Uhr aus.

Die Datei /sbin/shutdown.sh ist ein Skript, das die virtuellen Maschinen sauber herunterfährt und mit der ESXi-Instanz geliefert wird. Der Ausschaltbefehl lautet nur "Busybox Poweroff".


0

Wenn Python ausgeführt wird, können Sie das unten beschriebene Skript verwenden, um Ihren ESXi-Server zu aktivieren und herunterzufahren. Ich habe zu Hause einen Dell R810, den ich als Cisco VIRL-Server und andere Dinge verwende, aber ich schalte ihn nur ein, wenn ich ihn brauche. Es ist unten, also wollte ich einen Weg, wie ich es starten und von oben stoppen kann. Ich habe Wake On Lan auf der primären Netzwerkkarte auf dem Server aktiviert (STRG-S beim Booten und Aktivieren für Ihre primäre Netzwerkkarte). Stellen Sie in vSphere Ihre VMs so ein, dass sie mit dem Server gestartet und gestoppt werden, da dieses Skript Ihre VMs herunterfährt und den Server ausschaltet. Aktivieren Sie ssh für Ihren ESXi-Server, geben Sie den MAC der primären Netzwerkkarte ein und ändern Sie das Root-Passwort, die Server-IP und den Pfad zu Python unten.

python esxi.py -w Weckt den Server durch Senden des WOL-Magic-Pakets. python esxi.py -s fährt Ihre VMs herunter und schaltet Ihren Server aus.

Abhängigkeiten

Paramiko Wakeonlan Argparse

####################Start Script
#!/home/mikepartain/scripts/esxi/bin/python

from wakeonlan import wol
import time, argparse, paramiko


parser = argparse.ArgumentParser()
parser.add_argument('-w', action='store_true', dest='wakeup')
parser.add_argument('-s', action='store_true', dest='shutdown')
args = parser.parse_args()


if args.wakeup:
    print 'Waking up ESXI Server'
    wol.send_magic_packet('f0.4d.a2.aa.aa.aa')

if args.shutdown:
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect('192.168.178.10', username='root', password='#PASSWORD#')
    stdin, stdout, stderr = ssh.exec_command('powerOffVms && halt')
    print 'Shutting down ESXi Server'
    ssh.close()


####################END Script

Wenn dies für Sie funktioniert oder Sie eine Möglichkeit haben, es zu verbessern, lassen Sie es mich bitte wissen!

Mike Partain

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.