Seite 1 von 1

console und eigene scripte

Verfasst: 05.01.2013, 10:05
von chmod777
ich habe vor von vserver2 auf esx umzustellen und werde demnächst eine Maschine zum test einrichten.

kann man an der console von esx lunix-pakete installieren? lassen sich eigene scripte starten (cron)? kann man cgi-scripts (perl) ausführen?

konnte keine informationen dazu ergoogeln....

greets

Verfasst: 05.01.2013, 10:14
von irix
Unter ESX 3.x/4.x ging das weil die Servicekonsole ein RedHat Linux war. Beim ESXi ist dieser ganze Krempel endlich weg und es gibt nur eine kleine und sparsame Busybox.

In der Busybox kann man nur sehr begrenz Scripte ausfuehren und es ist Affentanz diese auch Permanent abzulegen oder ueber Cron auszufuehren.

Das ist aber garnich noetig da nun zahlreiche APIs zur Verfuegung stehen um den ESXi Host und seine Gaeste von aussen aus zusteuern.

Pakete kann man installlieren sofern diese im VIB Format vorliegen.

Gruss
Joerg

Verfasst: 05.01.2013, 10:41
von mbreidenbach
Ergänzung:

VMware bietet zweo Scriptingtoolkits an:
vSphere CLI ist Perl basiert und die Sytax ist sehr ähnlich zu ESXi Tech Support Mode CLI Befehlen.
PowerCLI ist PowerShell basiert.

Es gibt eine vorkonfigurierte Linux Appliance namens vMA welche vSphere CLI bereits beinhaltet und als Servicekomnsolenersatz gedacht ist.

Für z.B. Repoting Skripte die man bei Bedarf von Hand startet würde ich aber die Toolkits auf meinem Administrator-PC installieren und von dort starten.

ABER:

Beim KOSTENLOSEN ESXi sind die APIs Readonly was bedeutet man kann Werte auslesen aber nicht ändern. Damit fällt wohl alles außer Repoting flach.

Hier mal ein paar Links zu Webseiten ohne Anspruch auf Vollständigkeit die sich damit beschäftigen:

http://www.lucd.info/
http://www.virtu-al.net/
http://ict-freak.nl/category/virtualiza ... utomation/
http://www.virtuallyghetto.com/

Verfasst: 05.01.2013, 15:28
von chmod777
es geht um ein sicherungs-procedere

aktuell gehe ich wie folgt vor:

cron startet perl-script
- client suspend
- tar * > backup.tar
- client restart
- zip backup.tar -> backup.zip
- ftp transfer backup.zip

meint ihr, dass sich dies oder ähnliche bei ESXi 5 einrichten lässt? Oder gibt es bessere sicherungs-konzepte, die mit boardmitteln zu realisieren sind?

Verfasst: 05.01.2013, 15:32
von irix
Wenn du frickeln willst dann schau dir ghettoVCB2 an.

Der ESXi hat eine API nur fuer das Backup (VADP) und die passenden Produkte verwenden diese.

Gruss
Joerg

Verfasst: 05.01.2013, 16:28
von chmod777
passenden Produkte


kannst du das präzisieren? was meinst du mit "passenden Produkte"? ist das externe HW, SW oder was?

Verfasst: 05.01.2013, 16:49
von irix
Geeignet: Veeam oder Quest vRanger (bedingt liz. ESXi)
VMware Bordmittel: VDP (IIRC erst am Ess+ mit dabei)

Fuer einmalige Geschichten welche man manuell machen muss kann man mal VeeamZip oder Trilead Explorer verwenden.

Gruss
Joerg

Verfasst: 10.01.2013, 15:07
von Klaus_Urban
Hallo chmod777

Hier ein kleines Sicherungs-Script.
============================

#!/bin/ash
export PATH=/sbin:/bin

cd /vmfs/volumes/datastore1/script


ein=0
aus=1
Anzahl=1
APServer=192.168.11.10

echo Die ESXI Sicherung wurde NICHT gestartet, weil der APServer nicht angesprochen werden konnte! > protokoll.txt
echo ================================================================================================================== >> protokoll.txt
echo . >> protokoll.txt

# Ist der APServer eingeschaltet?

ping -c1 $APServer > /dev/null
Rechner=$?

#######################################################################################################################################################################
if [ $Rechner == $ein ] ; then

# nur wenn der Rechner läuft wird gesichert!


wtag=$(date +%u) # der Wochentag als Zahl (7=Sonntag)

case $wtag in
1)
wochentag=Montag
Ordner=APServer-MMF
;;
2)
wochentag=Dienstag
Ordner=APServer-DDS
;;
3)
wochentag=Mittwoch
Ordner=APServer-MMF
;;
4)
wochentag=Donnerstag
Ordner=APServer-DDS
;;
5)
wochentag=Freitag
Ordner=APServer-MMF
;;
6)
wochentag=Samstag
Ordner=APServer-DDS
;;
7)
wochentag=Sonntag
Ordner=APServer-MMF
;;
esac



echo -n Die $wochentag - Sicherung wird gestartet!

echo Die ESXI Sicherung wurde $wochentag gestartet! > protokoll.txt
date >> protokoll.txt


# Rechner ausschalten


/vmfs/volumes/datastore1/script/APServer_aus.sh


ping -c1 $APServer > /dev/null
Rechner=$?

while [ $Rechner == $ein ]
do
/vmfs/volumes/datastore1/script/APServer_aus.sh
ping -c1 $APServer > /dev/null
Rechner=$?
if [ $Rechner == $ein ] ; then echo Der APServer ist Online! Versuch=$Anzahl >> protokoll.txt ; fi
sleep 120
Anzahl=$(( Anzahl+1))
if [ $Anzahl == 11 ] ; then exit 0 ; fi

done


if [ $Rechner == $aus ] ; then
# Der APServer ist aus, also kann gesichert werden!

#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

echo Der APServer ist nicht mehr zu erreichen! Ich warte nochmal 2 Minuten, damit er wirklich aus ist!

sleep 120



echo -n Der APServer ist aus!

echo Der APServer wurde ausgeschaltet! >> protokoll.txt
date >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt



# Erst mal auf Fehler setzen

ACStatus=1
ADStatus=1
AEStatus=1
AFStatus=1


# APServer zur Sicherung kopieren

#------------------------------------------------------------------------------------------------------------------------------------------------------
# Disk C.vmdk prüfen
vmkfstools -x check "/vmfs/volumes/datastore1/APServer/C.vmdk"
error=$?
if [ $error -eq 0 ]; then
rm /vmfs/volumes/Sicherung/$Ordner/C*.vmdk
vmkfstools -i "/vmfs/volumes/datastore1/APServer/C.vmdk" "/vmfs/volumes/Sicherung/$Ordner/C.vmdk" -d thin
ACStatus=$?
if [ $ACStatus -ne 0 ]; then
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/C.vmdk wurde fehlerhaft kopiert!! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi
else
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/C.vmdk ist fehlerhaft! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi

#---------------------------------------------------------------------------------------------------------------------------------------------------------

# Disk D.vmdk prüfen
vmkfstools -x check "/vmfs/volumes/datastore1/APServer/D.vmdk"
error=$?
if [ $error -eq 0 ]; then
rm /vmfs/volumes/Sicherung/$Ordner/D*.vmdk
vmkfstools -i "/vmfs/volumes/datastore1/APServer/D.vmdk" "/vmfs/volumes/Sicherung/$Ordner/D.vmdk" -d thin
ADStatus=$?
if [ $ADStatus -ne 0 ]; then
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/D.vmdk wurde fehlerhaft kopiert!! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi
else
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/D.vmdk ist fehlerhaft! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi

#---------------------------------------------------------------------------------------------------------------------------------------------------------



# Disk E.vmdk prüfen
vmkfstools -x check "/vmfs/volumes/datastore1/APServer/E.vmdk"
error=$?
if [ $error -eq 0 ]; then
rm /vmfs/volumes/Sicherung/$Ordner/E*.vmdk
vmkfstools -i "/vmfs/volumes/datastore1/APServer/E.vmdk" "/vmfs/volumes/Sicherung/$Ordner/E.vmdk" -d thin
AEStatus=$?
if [ $AEStatus -ne 0 ]; then
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/E.vmdk wurde fehlerhaft kopiert! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi
else
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/E.vmdk ist fehlerhaft! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi

#---------------------------------------------------------------------------------------------------------------------------------------------------------

# Disk F.vmdk prüfen
vmkfstools -x check "/vmfs/volumes/datastore1/APServer/F.vmdk"
error=$?
if [ $error -eq 0 ]; then
rm /vmfs/volumes/Sicherung/$Ordner/F*.vmdk
vmkfstools -i "/vmfs/volumes/datastore1/APServer/F.vmdk" "/vmfs/volumes/Sicherung/$Ordner/F.vmdk" -d thin
AFStatus=$?
if [ $AFStatus -ne 0 ]; then
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/F.vmdk wurde fehlerhaft kopiert! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi
else
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/F.vmdk ist fehlerhaft! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi

#---------------------------------------------------------------------------------------------------------------------------------------------------------

echo Sicherung APServer wurde beendet! >> protokoll.txt
date >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt

# APServer starten
/vmfs/volumes/datastore1/script/APServer_ein.sh


#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



# Die APServer Sicherung zum NFS kopieren

#---------------------------------------------------------------------------------------------------------------------------------------------------------

if [ $ACStatus -eq 0 ]; then
rm /vmfs/volumes/NFS-Speicher/$Ordner/C*.vmdk
vmkfstools -i "/vmfs/volumes/Sicherung/$Ordner/C.vmdk" "/vmfs/volumes/NFS-Speicher/$Ordner/C.vmdk" -d thin
Status=$?
if [ $Status -ne 0 ]; then
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/C.vmdk wurde fehlerhaft zum NFS kopiert! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi
fi

#---------------------------------------------------------------------------------------------------------------------------------------------------------


if [ $ADStatus -eq 0 ]; then
rm /vmfs/volumes/NFS-Speicher/$Ordner/D*.vmdk
vmkfstools -i "/vmfs/volumes/Sicherung/$Ordner/D.vmdk" "/vmfs/volumes/NFS-Speicher/$Ordner/D.vmdk" -d thin
Status=$?
if [ $Status -ne 0 ]; then
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/D.vmdk wurde fehlerhaft zum NFS kopiert! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi
fi

#---------------------------------------------------------------------------------------------------------------------------------------------------------



if [ $AEStatus -eq 0 ]; then
rm /vmfs/volumes/NFS-Speicher/$Ordner/E*.vmdk
vmkfstools -i "/vmfs/volumes/Sicherung/$Ordner/E.vmdk" "/vmfs/volumes/NFS-Speicher/$Ordner/E.vmdk" -d thin
Status=$?
if [ $Status -ne 0 ]; then
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/E.vmdk wurde fehlerhaft zum NFS kopiert! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi
fi

#---------------------------------------------------------------------------------------------------------------------------------------------------------

if [ $AFStatus -eq 0 ]; then
rm /vmfs/volumes/NFS-Speicher/$Ordner/F*.vmdk
vmkfstools -i "/vmfs/volumes/Sicherung/$Ordner/F.vmdk" "/vmfs/volumes/NFS-Speicher/$Ordner/F.vmdk" -d thin
Status=$?
if [ $Status -ne 0 ]; then
echo ================================================================================================================== >> protokoll.txt
echo Die Datei APServer/F.vmdk wurde fehlerhaft zum NFS kopiert! >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt
fi
fi

echo Sicherung APServer zum NFS-Speicher wurde beendet! >> protokoll.txt
date >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt

#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

fi

#---------------------------------------------------------------------------------------------------------------------------------------------------------

# zur Sicherheit den APServer nochmal starten
/vmfs/volumes/datastore1/script/APServer_ein.sh


echo Inhalt der Original-VM >> protokoll.txt
echo ====================== >> protokoll.txt

ls -lah /vmfs/volumes/datastore1/APServer/*.vmdk >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt

echo Inhalt der Sicherungs-VM >> protokoll.txt
echo ======================== >> protokoll.txt

ls -lah /vmfs/volumes/Sicherung/$Ordner/*.vmdk >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt

echo Inhalt der NFS-VM >> protokoll.txt
echo ================= >> protokoll.txt

ls -lah /vmfs/volumes/NFS-Speicher/$Ordner/*.vmdk >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt

df -h >> protokoll.txt
echo ================================================================================================================== >> protokoll.txt



#######################################################################################################################################################################
fi


Klaus