VMWare OVA export verkleinern…

Mir ist es nun schon häufiger passiert das ich ein schönes VM Image erstellt habe und der export zu einer OVA auf einmal riesig wurde. Mein aktuelles Beispiel, die /root Partition war im System 3,3 GB groß und der export war auf einmal 15 GB groß.
Ich hatte hier einige Dateien vom System gelöscht die aber anscheinend im Dateisystem nur markiert wurden. So das der Export diese noch als existent betrachtete.
Ein kleiner Trick schafft hier Abhilfe, wir überschrieben einfach den gesamten Speicherplatz mit Zeros. Unter Linux genügt dort ein

dd if=/dev/zero of=/zerofile
sync
rm -rf /zerofile

Das System sollte damit relativ schnell voll werden. Am besten den gesamten leeren Speicher auffüllen und dann löschen.

Unter Windows kann man dafür das tool nullfile.exe oder sdelete.exe verwenden.
Wenn man nun das System exportiert wo ist der Unterschied schon gewaltig. Vorher 15 GB nun noch grademal 1,2 GB durch Kompression.

Schon witzig das man erst etwas richtig voll machen muss um es dann kleiner zu bekommen ^^

VSphere 5 ESXi Server patchen/updaten

Oft vergessen oder nicht drum gekümmert, das einspielen von Patches unter einem ESXi Server. Bis zur Version 4 konnte man das ganze sehr schön mit dem UpdateManager erledigen. Ab 4.1 muss dies per „Hand“ passieren. Hier eine kurze Beschreibung wie man das ganze unter ESXi 5 machen kann. Dies ist ein Weg, jedoch gibt es mehrere Möglichkeiten, wie so oft 😉

1. Vorbereitung

Zuerst muss überprüft werde ob es Patches gibt. Dazu geht man auf http://www.vmware.com/patchmgr/findPatch.portal und sucht dort für seine Version die letzte Version vom Patch, da sie kumulativ sind. Dieser kann jetzt runtergeladen werden und muss auf einen Datastore des ESXi Hosts gelangen. Als Tipp von mir, man kann sich auch den LINK kopieren und auf der SSH-Konsole per wget direkt downloaden… Dazu muss jedoch das https entfernt werden. Für einen Server noch gut verwendbar, jedoch langwierig.

WICHTIG: Versetzen Sie Ihren VMWare ESXi 5.0.0 in den Wartungsmodus. Das geschieht mittels Rechtsklick auf den Host-> „In den Wartungsmodus wechseln“.

Updates einspielen

Nun können wir uns per ssh mit dem Server verbinden, wenn nicht bereits erledigt und geben dort folgenden Befehl ein:

esxcli software vib update --depot /vmfs/volumes/ds1/patch.zip

Der Pfad zum Debot muss hier natürlich noch an eure Umgebung angepasst werden. Der Befehl hie Rist sehr mächtig und hat noch weitaus mehr Funktionen die sehr interessant sind. So kann man den Host automatisch in den Wartungsmodus bringen usw… Bei den meisten Updates muss man den Host danach neu starten. Nach dem Neustart muss nur noch der Wartungsmodus beendet werden und die virtuellen Maschinen neu gestartet.

Unter Umständen ist es nun nötig die VMWare Tools von Hand zu aktualisieren. Dies sollte auch zeitnah passieren, da diese sonst Probleme verursachen könnten.

 

Wie bereits erwähnt ist dies nur ein Weg um Patches/Updates auf einen ESXi Server zu bringen. Man kann auch die VMWare vSphere CLI  installieren und spart sich so den Umweg über die SSH Konsole. Der eine mag es so der andere so… Ich nehme halt immer meine gute alte SSH Konsole…^^

 

 

 

Public key auth auf VMWare ESXi 4

Ich nutze sehr gerne SSH Scripte um Aktionen auf unseren Servern auszuführen.

Jedoch ist dafür ein Zugang ohne Passwort nötig, der ESXi 4 Server sieht dafür von Haus aus jedoch keine Möglichkeit vor. Nach einem Neustart hat er die Einstellungen vergessen.

Mit einem kleinen Trick kann man ihm es jedoch beibringen. Auf den nächsten Zeilen erfahrt ihr auch wie es geht.

Zuerst muss man natürlich den SSH Dämon auf dem ESXi Server aktivieren. Bitte meldet euch danach gleich per SSH und Passwort auf dem Server an.

Das Homeverzeichnis vom Benutzer root ist nicht wie üblich unter /root zu finden sondern liegt direkt im root des Dateisystems, also / selbst.

Man könnte das Homeverzeichnis von root auch umlegen, dazu muss die Datei /etc/passwd editiert werden. Solltet ihr dies machen so ändert bitte die Pfade bei euch um.

Wir brauchen ein Verzeichnis für die Authkeys. Standardmässig ist dies im .ssh Verzeichnis des Benutzers zu finden. Also erstellen wir für root dieses und erstellen auch gleich eine Datei namens authorized_keys.

mkdir /.ssh
touch /.ssh/authorized_keys
vi /.ssh/authorized_keys

Hier könnt ihr nun die Schlüssel eingeben welchen es erlaubt sein soll sich per AuthKey zu verbinden. Ihr könnt sie aber auch einfach kopieren. Ich nutze auf meinem Debian System immer ssh-copy-id.

Damit der ESXi Server diese Einstellung auch nach einem Systemneustart beibehält kommt nun der anfangs erwähnte Trick zu tragen. Wir erstellen ein kleines Archiv mit unseren Einstellungen und auch noch zusätzlich von den Homeverzeichnissen der Benutzer die einen SSH-Key bekommen sollen. Standardmässig haben die Benutzer die der ESXi erstellt kein Homeverzeichnis, dies muss jedesmal in der /etc/passwd angepasst werden! Wir geben nun folgendes auf der Konsole ein:

tar -C / -czf "/bootbank/home.tgz" /.ssh /home

Danach editieren wir ‚/bootbank/boot.cfg‘ und fügen den Parameter „— home.tgz“

vi /bootbank/boot.cfg

Die Datei ‚/bootbank/boot.cfg‘ sollte dann ungefähr so aussehen:


kernelopt=
modules=vmk.gz — sys.vgz — cim.vgz — oem.tgz — license.tgz — mod.tgz — home.tgz
build=4.0.0-208167
updated=1
bootstate=0

Bitte beachtet, das wenn ihr neue Schlüssel hinzufügt oder neue Benutzer einen SSH-Key erhalten, ihr das home.tgz neu erstellen müsst!!!