wordpress themes | total verfriemelt

Total Verfriemelt

am Rande des Wahnsinns

Vor einiger Zeit habe ich hier das ghettoVCB Backup Script für den VMWare ESXi 3.x vorgestellt. Eine Version für den ESXi 4.0 gibt es dort ebenfalls. Da der ESXi bei einem Reboot sein Filesystem neu aufbaut sind alle Änderungen, die man z.B. für SSH Keybased Authentication oder Cronjobs vornimmt wieder verschwunden. Um die Einstellungen trotzdem persistent zu machen sind weitere Schritte notwendig.

Vorbereitungen auf dem ESXi.

Da auf dem ESXi von Haus aus kein SSH unterstützt wird, sollte dies erst einmal erledigt werden. Eine gute Anleitung dazu findet ihr hier.

Remotebackup von einem Linuxserver aus

SSH Keybased Auth – ESXi Server

Wir erstellen also das benötigte Verzeichnis /.ssh im Root  und darin das authorized_keys File.


mkdir /.ssh
touch /.ssh/authorized_keys
chmod 600 /.ssh
chmod 600 /.ssh/authorized_keys

SSH Keybased Auth – Linux Client

Auf dem Linux Client erstellen wir per ssh-keygen unseren Public Key, wobei wir passphrase leer lassen.


[root@gollum ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Den Inhalt der Datei /root/.ssh/id_rsa.pub kopieren wir in die Datei /.ssh/authorized_keys.
Der Login sollte jetzt ohne eine Eingabe vom Passwort funktionieren.

Damit das Ganze auch nach einem Reboot noch funktioniert, muss der Ordner ./ssh in die /bootbank/oem.tgz verfrachtet werden.

tar c - /.ssh | gzip > /bootbank/oem.tgz

Jetzt erstellen wir ein Script, welches auf dem 2. Linux Host via Cronjob ausgeführt werden soll und das Backup anstößt. (Bitte darauf achten, dass die ghettoVCB.sh und die backuplist.txt auf einem Datastore liegen, das diese sonst ebenfalls nach einem Reboot flöten gehen.)

Der Inhalt sollte in etwa wie folgt aussehen:

#!/bin/bash
ssh fb-vm-esxi01 << EOL #Verbindung zum ESXi aufbauen
/vmfs/volumes/datastore1/ghettoVCBi4.sh /vmfs/volumes/datastore1/backuplist.txt #Befehl der auf dem ESXi ausgeführt wird
exit #Logout vom ESXi
EOL

Zu guter Letzt können wir das Script auf dem Linuxserver in einen Cronjob packen.

Cronjobs auf dem ESXi direkt

Die Crontab des ESXi liegt unter /var/spool/cron/crontab/root, ist ebenfalls nicht persistent und auf 512 Zeichen limitiert. Wer mehr in die Crontab schreiben möchte, muss die oben erwähnte Vorgehensweise nutzen.

Wenn nur das Backup gestartet werden soll, reicht die ESXi Crontab aber noch aus.

Dazu öffnen wir die /etc/rc.local und fügen folgende Zeile hinzu:

echo "0 21 * * 5 /vmfs/volumes/datastore1/ghettoVCB4i.sh" >> /var/spool/cron/crontabs/root

Somit wird bei jedem Reboot der Eintrag in der Crontab wiederhergestellt.

Ein großes Dankeschön an die Kommentatoren, die mich auf die Rebootgeschichte aufmerksam gemacht haben.

Bookmark and Share

Ähnliche Verfriemelungen:

Kommentare

Es gibt 25 Kommentare für diese Verfriemelung.

  1. Seppl on August 4, 2009 8:44 am

    Sehe ich das falsch oder ist die Lösung nicht Reboot-beständig? Meines Wissens und auch meiner Erfahrung nach lädt ein ESXi bei jedem Boot ins RAM. Wenn ich im vermeintlichen Dateisystem etwas ändere oder z. B. Ordner anlege sind die nach einem Reboot wieder weg. Schon mal nen Reboot gemacht?

    Gruß
    Seppl

  2. Bjoern on August 4, 2009 10:24 am

    Ja, mehrere Reboots sogar. Wenn er wirklich alles vergessen würde, dann wären ja auch alle Settings, zu VMNetworks und dergleichen nach einem Reboot verschwunden.

  3. Seppl on August 4, 2009 10:57 am

    Die Einstellungen werden persistent gespeichert, dass stimmt natürlich. Wenn ich aber an anderen Stellen im System Ordner oder Dateien anlege bzw. editiere werden diese wieder überschrieben. Das Gleiche Problem besteht z.B. bei den Cronjobs, siehe http://vmware-forum.de/viewtopic.php?t=13724

    Interessant ist natürlich das es bei dir funktioniert, hast du das Home-Dir von Root geändert oder ist es standardmäßig /? Bei mir wird jedenfalls ein Unterordner von / nach jedem Reboot platt gemacht, auch wenn der /.ssh heisst.

  4. Bjoern on August 4, 2009 12:07 pm

    Hmm… Ich habe das ganze nochmal bei meinem Testsystem durchgeführt und dort ist es wie du beschrieben hast. Komisch eigentlich. Ich probiere mal mehrere Möglichkeiten aus, wie man es hinbekommt. Eventuell den ./ssh inklusive authorized_keys in einen persistenten Ordner verschieben und beim Neustart nur einen Link aus der rc.local heraus setzen. Danke aber für den Hinweis, wäre jetzt weiter davon ausgegangen das es funktioniert.

  5. Memo on August 6, 2009 1:57 pm

    gibt es nichts neues, ne?

    hast du es hiermit mal probiert? Muss mich mit dem Thema jetzt auch auseinandersetzen.

  6. Bjoern on August 6, 2009 2:48 pm

    Nein bin bisher noch nicht dazu gekommen. Werde berichten wenn ich ne Lösung habe.

  7. Seppl on August 6, 2009 3:06 pm

    Ich erarbeite derzeit eine Lösung, da ich shutdownscripte auf ESXi-Servern verwenden möchte und diese ebenfalls per SSH gestartet werden sollen. Somit habe ich das gleiche Problem.
    Versuche den .ssh-Ordner einfach in ein tgz-Archiv zu packen, aus dem der ESXi Teile der Dateisystemstruktur beim Booten wiederherstellt, sind bis jetzt mit einem purple Screen of Death geendet, aber ich habe bereits einen anderen Ansatz. Ich melde mich sobald was Brauchbares bei rausgekommen ist.

  8. Memo on August 7, 2009 7:48 am

    das mit dem Tgz. archiv hab ich mir auch gedacht, aber es sein lassen, genau aus dem Grund. Werde mal bisschen nachforschen, evtl stoße ich ja auch auf was interessantes.

  9. Seppl on August 8, 2009 2:28 pm

    Und da sind wa wieder….
    Unterhalb von /vmfs/devices gibt es mehrere HypervisorN-Verzeichnisse, in denen die Dateien liegen, aus denen das Dateisystem beim Booten restored wird. Auf meinem Testsystem ist unter Hypervisor3 noch reichlich Platz, also habe ich dort mein .ssh-Verzeichnis und mein Shutdownscript abgelegt, dass scheint den ESXi nicht zu stören wenn da was rumliegt was er nicht kennt.
    Anschließend habe ich in der /etc/rc.local einfach noch zwei copy-commands mit eingefügt, die von Hypervisor3 nach / die Sachen bei jedem Systemstart kopieren. Ist zwar nicht besonders schön, funktioniert aber erste Sahne. Falls ihr eine schönere Methode findet lasst es mich wissen!

  10. Bjoern on August 10, 2009 12:55 pm

    Danke Seppl und Memo! Ich habe den Beitrag komplett abgeändert und so läuft es bei mir auf nem ESXi 4.0 auch nach einem Reboot noch. Wieso es mir vorher nicht aufgefallen ist, kann ich garnicht so genau sagen.

  11. Memo on August 12, 2009 11:07 am

    Hi,

    sagt mal, hat einer von euch eine Möglichkeit gefunden bei einem Neustart des ESXi eine VM automatisch starten zu lassen?

    Über Konsolenbefehle geht es ja nur, wenn man RemoteCLI installiert hat. Gibt es ne Alternative?

    thx

  12. Bjoern on August 12, 2009 11:45 am

    @Memo: Die Funktion findest du per VI-Client unter Konfiguration -> (Software) VM starten/herunterfahren. Dort dann auf Eigenschaften klicken und den Haken bei “Automatisches Starten und Herunterfahren von virtuellen Maschinen zulassen” setzen. Danach kannst du die VM durch “Nach oben” bzw. “Nach unten” navigieren und ihnen eine Startreihenfolge zuweisen.

  13. Memo on August 12, 2009 12:02 pm

    thx, läuft.

  14. Georg on August 14, 2009 1:13 pm

    Hallo,
    erstmal danke für die Anleitung. Ich habe da einklitze kleines Problem.
    Einschliesslich des connects per ssh auf den Esx klappt alles. wenn ich dann aber
    ssh esx4 /pfadzumghetto/ghettoVCB4i.sh /pfadzumghett/backup_list
    in die commando zeile hacke, kommt Meldung das das ghettoVCBi4.sh nicht gefunden werden kann.
    gehe ich in der kommandozeile einfach
    ssh esx4 [Enter]
    ./pfadzumghetto/ghettoVCBi4.sh /pfadzumghetto/backup_list [enter]
    ein, dann legt das skript los und alles funktioniert.
    Alles in allem bin ich etwas ratlos.
    ja ich kenne mich nicht mit linux-skripten aus,
    esx4 ist ein esxi4 server, dessen ssh-konsole eröffnet wurde…
    Gruesse und Danke
    Georg

  15. Bjoern on August 14, 2009 1:57 pm

    Hast du dir denn das Script gebastelt? Wichtig ist der Teil mit <

  16. Georg on August 14, 2009 3:18 pm

    Hallo,
    ich habe das Skript von oben in ein Textfile kopiert , mit notepad editiert und per scp auf den Linux-Server geschoben. Den teil mit EOL habe ich anfänglich drin gelassen. Er scheint die Ausgabe von Ergebnissen zu verhindern, oder? Die Fehlermeldung mit dem nicht gefundenen ghettoskript hatte ich dann von anfang an. Wie gesagt, setze ich die Befehle zu Fuss ab, dann gehts. Komisch..

    Gruesse Georg

  17. Georg on August 14, 2009 3:56 pm

    Hallo Bjoern,
    the solutuion is and the prize goes to ….

    Ich habe das Skript mit VI nochmal geschrieben, jetzt muss ich nur noch nen Schreibfehler rausnehmen und dann sollte es klappenm offenbar mag notepad keine linux skripte schreiben….

    Gruesse Danke
    Georg

  18. Seppl on August 14, 2009 3:57 pm

    Kann es sein dass du den Punkt vor der Pfadangabe weg gelassen hast? Ein Punkt gibt an das der folgende Pfad relativ zum derzeitigen Verzeichnis gilt, in dem man sich gerade befindet. Lässt du den Punkt weg so muss du einen absoluten Pfad von / aus angeben!

  19. Georg on August 15, 2009 12:43 pm

    Hallo Seppl,
    ich habe das Skript im ersten Schritt einfach aus dem Blog kopiert und mit Notepad gespeichert. Als es dann nicht funktioniert hat, habe ich mit und ohne Punkt getestet. Ich habe das Skript dann von Hand geschrieben und es hat dann funktioniert. Jetzt überlege ich mir ob ich die Verzeichnisse nicht noch tar oder gzippe. Das könnte man mit der Linux-Büchse und einem NFS mount ja auch noch hin bekommen. Die Frage ist nur ob es was bringt und was das ghettoskript dann tut, wenn die sicherungen getart sind. Aber das teste ich mal am Montag durch. Sonst bekomme ich hier noch Ärger mit meiner Chef-Administratorin oder Administrator-Chefin, eines von beiden, ich bekomme es wohl noch raus.
    Gruesse Georg

  20. Memo on August 17, 2009 8:52 am

    @georg

    warum nutzt du nciht Notepad++? Da kannst du das File zu Unix konvertieren und bekommst auch vom falschen Format auch keine Fehler.

  21. Cronjob - Forum Fachinformatiker.de on September 22, 2009 12:04 pm

    [...] [...]

  22. theknut on November 3, 2009 11:49 am

    …was ich bei all den cron-Geschichten vergeblich gesucht habe und an anderer Stelle gefunden habe. Wenn ihr irgendwie mit der cron rumspielt, vergesst einen

    /bin/busybox crond -b

    nicht damit das überhaupt aktiv wird. Ich habe mich nen halben Tag mit dem Thema rumgeschlagen und dass ist nun meine finale Lösung:
    cron füttern über rc.local (in meinem Fall 2 Varianten des GhettoVCB für 4.0
    danach ganz wichtig noch nen “/bin/busybox crond -b” hinterher und alles ist “Grüne Wiese”

  23. Bjoern on November 4, 2009 1:35 pm

    @theknut Danke!

  24. Patric on August 25, 2010 2:49 pm

    Tach,

    da ich grade für den nächsten Kunden einen ESXi 4.1 installiert habe, wollte ich nur bekannt geben, dass SSH nicht mehr von hinten durch die Burst ins Auge aktiviert werden muss, sondern recht komfortabel direkt über vSphere Client in den Eigenschaften vom Sicherheitsprofil.

    Hier der dazugehörende VMWare KB-Artikel: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1017910

  25. Bjoern on August 25, 2010 2:58 pm

    Hallo Patric,

    vielen Dank… Das wusste ich bisher auch noch nicht.

Senf dazugeben