Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

APC-USV über USB ansprechen und ESX herunterfahren

Moderatoren: irix, Dayworker

Member
Beiträge: 23
Registriert: 14.10.2013, 09:10

APC-USV über USB ansprechen und ESX herunterfahren

Beitragvon Fachixx » 24.03.2014, 09:19

Hallo Zusammen,

ich habe eine USV, die leider keine Möglichkeit bietet diese mit dem Netzwerk zu verbinden, sprich ich kann nur über USB mit ihr sprechen.

Jetzt ist mein Vorhaben, dass die USV ab einem bestimmten %-Satz die VMs herunterfährt und zum Schluss den ESX abschaltet. Ein Hochfahren ist nicht wichtig. Das soll manuell gemacht werden.

Was sind da die besten Methoden?

Experte
Beiträge: 1006
Registriert: 30.10.2004, 12:41

Beitragvon mbreidenbach » 24.03.2014, 09:45

USB durchreichen ist so ne Sache.

USV an physikalische Maschine (z.B. Backupserver ?) anschließen, da Shutdownsoftware installieren und von der ein Skript starten welches die virtuelle Umgebung runterfährt.

Member
Beiträge: 84
Registriert: 17.07.2013, 15:42

Beitragvon leo » 24.03.2014, 10:08

Ich habe das schon öfters gemacht, eine APC-USV per USB durchreichen und dann über eine VM den eigenen ESXI herunterfahren.

Man muss auch nicht die einzelnen VM's herunterfahren.Es reicht, dem ESXI einen "halt" Befehl zu geben. Dann fährt er die VM's vor dem Abschalten herunter, so wie sie in der Konfiguration unter "VM starten/herunterfahren" eingestellt sind.

Member
Beiträge: 23
Registriert: 14.10.2013, 09:10

Beitragvon Fachixx » 24.03.2014, 10:08

Und kennt dazu wer eine Möglichkeit? Die, die ich gefunden habe basiert leider immer darauf die USV über eine feste IP, die ich ihr nun mal nicht zuweisen kann, zu verwalten.

Experte
Beiträge: 1006
Registriert: 30.10.2004, 12:41

Beitragvon mbreidenbach » 24.03.2014, 10:30

Hat der ESXi eine kostenlose Lizenz ? Dann klappt das mit dem Skript vermutlich nicht da er über APIs keine Befehle annimmt.

Guru
Beiträge: 3081
Registriert: 27.12.2004, 22:17

Re: APC-USV über USB ansprechen und ESX herunterfahren

Beitragvon rprengel » 24.03.2014, 10:39

Fachixx hat geschrieben:Hallo Zusammen,

ich habe eine USV, die leider keine Möglichkeit bietet diese mit dem Netzwerk zu verbinden, sprich ich kann nur über USB mit ihr sprechen.

Jetzt ist mein Vorhaben, dass die USV ab einem bestimmten %-Satz die VMs herunterfährt und zum Schluss den ESX abschaltet. Ein Hochfahren ist nicht wichtig. Das soll manuell gemacht werden.

Was sind da die besten Methoden?


Beim einem Kunden haben wir das so gelöst das ein kleines Debian-Gastsystem die USV für den ESX-Host ausliest und den "APC-Server" spielt. Alle anderen Gäste auf dem Host pollen diesen Gast mit den passenden Tools regelmässig an und fahren bei Bedarf runter.
Zusätzlich schreibt das Debain-System eine Steuerdatei per ssh auf den Host. Findet der ESX-Host diese Datei fährt er nach 10 Minuten runter.
Klappt hier sowohl mit seriellen als auch mit Netzwerk-USVen da der APCD unter Linux sehr flexibel ist.
Nachteil:
- Manuelles Timing zwischen Host und Gästen. Wenn die Gäste mehr als 10 Minuten brauchen wird es hakelig.
- Die Gäste können nicht mal eben auf einen anderen Host umziehen ohne die USV-Konfiguration pro Gast anzupassen

Member
Beiträge: 84
Registriert: 17.07.2013, 15:42

Beitragvon leo » 24.03.2014, 10:52

das geht mit ssh auch mit einer freien Lizenz:

Code: Alles auswählen

echo y | plink root@192.168.3.4 -pw xyz halt >> /var/log/doshutdown 2>&1


192.168.3.4 ist der ESXI-Host, welcher heruntergefahren werden soll, kann auch der eigene Host sein, auf welchem die VM läuft

plink ist in Debian im Paket putty-tools enthalten

Member
Beiträge: 23
Registriert: 14.10.2013, 09:10

Beitragvon Fachixx » 24.03.2014, 14:31

Und was genau muss ich auf dem Debian installieren, damit er so kommuniziert?

Member
Beiträge: 84
Registriert: 17.07.2013, 15:42

Beitragvon leo » 24.03.2014, 16:31

auf Debian APC über USB einbinden und damit den ESXI-Host herunterfahren:

apt-get install apcupsd
apt-get install putty-tools

/etc/apcupsd/apcupsd.conf:

Code: Alles auswählen

UPSCABLE usb
UPSTYPE usb
DEVICE


neue Datei anlegen /etc/apcupsd/doshutdown:

Code: Alles auswählen

#!/bin/sh
echo y | plink root@192.168.3.4 -pw xyz halt >> /var/log/doshutdown 2>&1
exit 99


chmod 755 doshutdown

/etc/apcupsd/killpower am Ende ändern:

Code: Alles auswählen

#!/bin/sh
#
# This shell script if placed in /etc/apcupsd
# will be called by /etc/apcupsd/apccontrol before
# apcupsd kills the power in the UPS. You probably
# need to edit this to mount read-only /usr and /var,
# otherwise apcupsd will not run.

# Choose one of this solution
#mount -n -o ro /usr
#mount -n -o ro /var
#
#mount | awk '/ext2/ { print $3 }' | while read line; do
#       mount -n -o ro,remount $line
#done
#mount | awk '/ext3/ { print $3 }' | while read line; do
#       mount -n -o ro,remount $line
#done
#mount | awk '/reiserfs/ { print $3 }' | while read line; do
#       mount -n -o ro,remount $line
#done

# exit 0
# exit-code geaendert auf 99, um poweroff zu deaktivieren
exit 99


service apcupsd restart

Member
Beiträge: 23
Registriert: 14.10.2013, 09:10

Beitragvon Fachixx » 28.03.2014, 10:34

Ich muss jetzt nochmal darauf zurück kommen, da ich mehrere Fragen habe ...

1.

Code: Alles auswählen

#!/bin/sh
echo y | plink root@192.168.3.4 -pw xyz halt >> /var/log/doshutdown 2>&1
exit 99

Hier muss ich die IP ändern und das "xyz" in das root-Passwort, richtig?

2.
Was genau muss ich in dem zweiten Code abändern? Verstehe den nicht so ganz.

Member
Beiträge: 84
Registriert: 17.07.2013, 15:42

Beitragvon leo » 28.03.2014, 14:17

1. genau, die IP von dem ESXI-Host und das root-Passwort eintragen
der ESXI-Host muss den SSH-Zugang freigeschaltet haben

am besten vorher testen:
ping 192.168.3.4 -> ist das Netzwerk richtig konfiguriert?
ssh 192.168.3.4 -> kann man sich mit root + passwort einloggen?

2. nur das Ende abändern (exit 99), die Datei ist schon vorhanden

Member
Beiträge: 23
Registriert: 14.10.2013, 09:10

Beitragvon Fachixx » 28.03.2014, 15:14

Welchen Wert lege ich denn mit (exit xx) fest? Ich möchte bei einer Reststromkapazität von 75% den Vorgang "Herunterfahren" starten.

Member
Beiträge: 84
Registriert: 17.07.2013, 15:42

Beitragvon leo » 28.03.2014, 15:28

exit 99 ist ein Rückgabe-Code, der muss so bleiben

die Restkapazität der UPS stellst Du in apcupd.conf ein:
BATTERYLEVEL 25

Member
Beiträge: 23
Registriert: 14.10.2013, 09:10

Beitragvon Fachixx » 03.04.2014, 08:09

Was muss ich denn dann abändern, wenn exit 99 so bleiben muss?

Member
Beiträge: 84
Registriert: 17.07.2013, 15:42

Beitragvon leo » 03.04.2014, 08:38

exit 99 ist ein Signal an das apcupsd, dass es kein poweroff durchführen soll, ansonsten schaltet die UPS nach 90 sec den Strom ab und das ist für ESXI zu wenig. Bei USB kann man das nicht verlängern, das geht nur mit einer seriellen Verbindung, deswegen wird das poweroff hier mit 99 komplett deaktiviert.

Ändern musst du die BATTERYLEVEL in /etc/apcupsd/apcupsd.conf:
BATTERYLEVEL percent of battery
If BATTERYLEVEL is specified, during a power failure, apcupsd will halt the system when the remaining battery charge falls below the specified percentage. The default is 5 percent.

Member
Beiträge: 23
Registriert: 14.10.2013, 09:10

Beitragvon Fachixx » 03.04.2014, 08:55

Gut das hab ich nun verstanden. Ich fass jetzt einfach mal zusammen, wäre super wenn du mich bestätigen oder korrigieren könntest.

Debian installieren
apcupsd installieren
putty-tools installieren (wofür sind die, überhaupt?)

Unter /etc/default/apcupsd

Code: Alles auswählen

# Defaults for apcupsd initscript

# Apcupsd-devel internal configuration
APCACCESS=/sbin/apcaccess
ISCONFIGURED=yes


Dann in der apcupsd.conf meine Daten einfügen.

neue Datei anlegen /etc/apcupsd/doshutdown:

Code: Alles auswählen

#!/bin/sh
echo y | plink root@192.168.xx.xx -pw ROOT-PW halt >> /var/log/doshutdown 2>&1
exit 99


chmod 755 doshutdown (wofür ist das?)

etc/apcupsd/killpower am Ende das exit 99 auskommentieren, damit die USV nicht herunterfährt.

Member
Beiträge: 84
Registriert: 17.07.2013, 15:42

Beitragvon leo » 04.04.2014, 12:27

Ja, so sieht es gut aus, am Ende exit 0 auskommentieren und exit 99 hinzufügen

Wenn apcupsd eine Datei mit dem Namen doshutdown findet, so wird diese anstelle der Standard-Prozedur für das shutdown ausgeführt. So kann man einen eigenen Script einbinden, welcher mit chmod 755 ausführbar gemacht sein muss.

putty-tools ist für plink.

Member
Beiträge: 23
Registriert: 14.10.2013, 09:10

Beitragvon Fachixx » 11.04.2014, 12:30

So ich hab das nun alles eingestellt. Habe die Verbindung über ssh mit dem ESX geprüft und konnte mich verbinden. Nun bekomme ich folgendes Ergebnis:

Wenn ich den Stecker ziehe und unter meine Grenze komme schaltet der ESX-Host sofort aus ohne irgendwas herunterzufahren. Vom Verhalten her so, als wenn ich ihm einfach den Strom abziehe, so schnell fährt er runter.

Folgendes finde ich in den Logs

Bild

Member
Beiträge: 84
Registriert: 17.07.2013, 15:42

Beitragvon leo » 11.04.2014, 14:49

Gibt es die Log-Datei /var/log/doshutdown?

Wenn vorhanden, dann auf Fehlermeldungen überprüfen.

Wenn nein, dann ist das Script nicht richtig eingebunden (Dateiname oder Berechtigung falsch)

Member
Beiträge: 23
Registriert: 14.10.2013, 09:10

Beitragvon Fachixx » 11.04.2014, 15:15

Die gibt es: Fehlermeldung "The servers host key is not cached. You have no guarantee that the server is the computer you think it is."

Member
Beiträge: 84
Registriert: 17.07.2013, 15:42

Beitragvon leo » 11.04.2014, 18:17

Das ist OK, dafür ist das echo y vor dem Befehl, um diese Meldung zu bestätigen. Es gibt keine weitere Fehlermeldung?

Kommt der Halt-Befehl beim ESXI an? Das kann man im Vmware Vsphere Client beobachten.

Und ist im killpower am Ende ein exit 99?

/etc/apcupsd/killpower:

Code: Alles auswählen

#!/bin/sh
exit 99

Member
Beiträge: 23
Registriert: 14.10.2013, 09:10

Beitragvon Fachixx » 06.05.2014, 10:28

Wo genau sollte ich das unter dem vSphere Client sehen? Unter "Task & Events" sehe ich leider kein Befehl. Ich konnte mich aber vorher mit ssh auf dem root einloggen.

Am Ende der killdown steht exit 99.

Edit:

Hier mal meine Einstellungen /etc/apcupsd/apcupsd.conf

UPSNAME TESTNAME
UPSCABLE usb
UPSTYPE usb
DEVICE
LOCKFILE /var/lock
SCRIPTDIR /etc/apcupsd
PWRFAILDIR /etc/apcupsd
NOLOGINDIR /etc
BATTERYLEVEL 80
MINUTES 4
ANNOY 0
ANNOYDELAY 0
NOLOGON disable
KILLDELAY 260


Edit2:

Muss auf dem ESX-Host noch etwas installiert werden? PerlToolkit oder sowas? Der ESX-Host von mir ist Standart installiert, sonst nichts.

Member
Beiträge: 84
Registriert: 17.07.2013, 15:42

Beitragvon leo » 06.05.2014, 17:30

Auf dem ESXI-Host muss nichts installiert werden, nur der ssh-Zugang muss freigeschaltet sein.

Um das Herunterfahren zu testen, kannst du dich mit ssh auf dem ESXI einloggen und dann "halt" eingeben. Dann kann man im vSphere Client unten in der Statuszeile sehen, wie zuerst die VM's und dann der Host heruntergefahren wird, vorausgesetzt das die VM's so eingestellt sind, dass sie automatisch starten und stoppen.

Dann das gleiche nochmals von der Linux-Shell aus testen:
plink root@192.168.xx.xx -pw ROOT-PW halt

Als 3. Schritt dann mit apcupsd testen und dabei den vSphere Client beobachten, was passiert, parallel auch in der Linux-Shell die Log-Dateien.

Member
Beiträge: 23
Registriert: 14.10.2013, 09:10

Beitragvon Fachixx » 02.06.2014, 13:43

So ich nochmal. Es hapert jetzt nur noch an einem kleinen Punkt, und zwar scheint er das "echo y" nicht zu machen. Denn wenn ich den doshutdown-Befehl über das Debian-Terminal mache, dann kommt die Frage mit dem Key die ich mit [y/n] bestätigen kann. Sobald ich bestätige führt er aus.

Also entweder wird das Skript gar nicht ausgelöst, oder er bestätigt nicht mit [y].

Beim letzten Test hat er nur die Debian-Maschine runter gefahren...

Benutzeravatar
Guru
Beiträge: 3138
Registriert: 22.02.2008, 20:01
Wohnort: Hessen

Beitragvon PeterDA » 02.06.2014, 14:35

Hi,
Dann fährt er die VM's vor dem Abschalten herunter, so wie sie in der Konfiguration unter "VM starten/herunterfahren" eingestellt sind.


Diese Aussage stimmt aber nur wenn man kein HA im Einsatz hat.

Gruß Peter


Zurück zu „vSphere 5.5 / ESXi 5.5“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast