ESXi Backup mit GhettoVCB

Mit dem Open Source-Tool GhettoVCB ist es möglich, von der ESXi-Shell aus virtuelle Machinen zu sichern.Das Tool ist hier beschrieben.

Das Shell-Script legt einen Snapshot an oder fährt VMs herunter, um dann die Dateien auf einen Datenträger zu kopieren. Am Ende kann es eine Mail versenden.

Zum Versenden der Mail unter ESXi muss allerdings eine Firewallregel ergänzt werden, die nach einem Reboot wieder aktiviert werden muss.

Firewallregel:

<!– Firewall configuration information for ghettovcb-mail –>
<ConfigRoot>
<service id=’0033′>
<id>ghettomail</id>
<rule id=’0000′>
<direction>outbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>25</port>
</rule>
<enabled>true</enabled>
<required>false</required>
</service>
</ConfigRoot>

Diese Regel muss in einer Datei stehen im Verzeichnis /etc/vmware/firewall. Wenn die Datei dort steht, muss die Regel noch aktiviert werden mit esxcli network firewall refresh.

Die Datei mit der Firewallregel kann auf einem Datenträger gespeichert sein, um sie dann beim Reboot ins oben angegebene Verzeichnis zu kopieren. Auf dem Hetznerserver sind das die beiden Rootserverplatten mit den Namen datastore1 und datastore2.

Damit die Regel auch nach einem Reboot wieder aktiv ist, wird in die /etc/rc.local folgende Zeilen ergänzt:

/bin/cp /vmfs/volumes/datastore1/Programme-Skripte/ghettomail.xml /etc/vmware/firewall
/sbin/esxcli network firewall refresh

—     noch zu testen, ob es so geht ———-

Sinnvollwerweise kann man einen cronjob anlegen, damit das Backup zyklisch durchgeführt wird.

Triple Boot auf MacMini Late 2012

Mit den MacMinis von Ende 2012 (Version MacMini 6,1) soll wieder eine Triple-Boot-Laborumgebung geschaffen werden.

Mac OS 10.8 (Mountain Lion) ist vorinstalliert. Mit dem Bootcamp-Assistent wird Windows 8 dazu installiert. Mit einer Ubuntu 12.10-Installation kommt dann noch Linux hinzu.

In Mac OS wird Refind als grafische Bootauswahloberfläche installiert. Darin lässt sich das Default-Betriebssystem einstellen.

Mit dem Bootcamp-Assistenten wird die Mac OS-Partition verkleinert (z. B. auf 80 GB), die Apple-Windowstreiber geladen und auf einen USB-Stick gespeichert, dann die Windows-Installation gestartet. Während der Installation muss die Bootcamp-Partition gelöscht werden, weil der Windows-Installer nicht auf ihr installieren kann. Dabei kann die Bootcamp-Partition gleich in der richtigen Größe (z. B. 100 GB) angelegt werden. Danach läuft die Installation durch. Am Ende sind in Windows noch die Apple-Treiber vom Stick zu installieren.

Ubuntu 12.10-Installation:

Ich verwende den Security-Remix, in dem schon mal Spiele nicht mehr enthalten sind, dafür eine Bootreparatur und ein Betriebssystem-Deinstaller. Da die Distribution keine passenden Netzwerktreiber enthält, stellt ein zum Glück unterstützter USB-Ethernet-Adapter die Netzwerkverbindung her.Die Installation erfolgt mit externem Superdrive-Laufwerk.

Nach dem Booten von DVD ist zunächst die manuelle Partitionierung von Bedeutung:

Ich will btrfs verwenden. Dann ist prinzipiell möglich, mit Snapshots zu arbeiten. Die Installation benötigt

  • die Root-Partition, Größe 40 GB mit btrfs
  • eine kleine biosgrub-Partition (10 MB)
  • eine swap-Partition
  • Bootlader soll nach /dev/sda geschrieben werden

Damit läuft die Installation durch.

Nach dem Reboot geht es in Ubuntu weiter:

  • Amazon-Shopping entfernen: sudo apt-get remove unity-lens-shopping
  • Systemupdates einspielen
  • Laborbenutzer anlegen
  • wireshark, iperf, vim (für Laboraufgaben) installieren
  • Zum Installieren der Netzwerktreiber ist derzeit noch ein Kompilieren nötig, deshalb Linux-Header und build-essential installieren
  • wireshark für non-root zulassen: sudo dpkg-reconfigure wireshark-common
  • Labornutzer in Gruppe wireshark setzen: usermod -aG wireshark kone
  • Ethernet-Treiber: Der Original-Broadcom-Treiber lässt sich nicht übersetzen. Entweder muss man die Source ändern oder eine modifizierte Version laden. Version ist die 3.124c. Hilfreich war der Post http://ubuntuforums.org/showthread.php?t=2078320&page=2. Evtl. kann man den Treiber mit dkms dauerhaft installieren.
  • WLAN-Treiber: Grundsätzlich den b43-Treiber laden und die passende Firmware ergänzen
     sudo apt-get install b43-fwcutter firmware-b43-installer
     export FIRMWARE_INSTALL_DIR="/lib/firmware"
     wget http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2
     tar xjf broadcom-wl-5.100.138.tar.bz2
     sudo b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.100.138/linux/wl_apsta.o
  • Das Booten von btrfs führt zu einer Fehlermeldung. Sie wird so eliminiert: In der Datei /etc/grub.d/00_header wird die folgende Zeile (mit if…) auskommentiert. Danach  noch ein update-grub.
    [...]
    function recordfail {
      set recordfail=1
      #if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi
    }
    [...]

Ein Snapshot-Utility „snapper“ für btrfs gibt es bei opensuse. Für Ubuntu 12.10 sind keine Dateien verfügbar, aber für 12.04. Die Files sind zu finden unter http://download.opensuse.org/repositories/filesystems:/snapper/xUbuntu12.04/amd64. Ein Tutorial findet sich unter http://en.opensuse.org/Portal:Snapper.

 

IPv6-only-Server

Auf einem Root-Server EX4 bei Hetzner läuft ein Ubuntu-Server, der ausschließlich über IPv6 kommunizieren kann.

Grundkonfiguration des Netzwerkanschlusses in /etc/network/interfaces:

auto eth0
iface eth0 inet6 static
address 2a01:4f8:150:61c1::3
netmask    59
gateway 2a01:4f8:150:61c0::1

DNS:

Neben der IPv6-Netzkonfiguration mit IP-Adresse und Router sind die Nameserver-Adressen wichtig. Hetzner bietet IPv6-ansprechbare Nameserver an.

/etc/resolv.conf:

nameserver 2a01:4f8:0:a006::add:1010
nameserver 2a01:4f8:0:a102::add:9999
nameserver 2a01:4f8:0:a111::add:9898

Im DNS-Server trägt man sinnvollerweise Namen für den IPv6-Host ein, z.B.

ubuntuv6.prof-lang.de. IN AAAA 2a01:4f8:150:61c1::3

Die Reverse-Auflösung lässt sich im Robot unter „IP“ anlegen.

Software-Updates: Die ubuntu-Repositories von Hetzner sind über IPv6 erreichber ! Die Servername müssen lediglich um den Zusatz ipv6 ergänzt werde, also in der source.conf:

deb http://mirror.ipv6.hetzner.de/ubuntu/packages oneiric main restricted universe multiverse
deb http://mirror.ipv6.hetzner.de/ubuntu/packages oneiric-updates main restricted universe multiverse
deb http://mirror.ipv6.hetzner.de/ubuntu/security oneiric-security main restricted universe multiverse

Laden weiterer Software

Nicht alles ist in den Repositories enthalten oder liegt in anderen, nicht bei Hetzner vorhandenen Repositories. Hier hilft SixXs weiter, die einen IPv6-Webproxy bieten, um von IPv6-Adressen aus auf IPv4-adressierte Webserver zuzugreifen (an eine Adresse sixxs.net anhängen).

NTP

Ubuntu installiert den NTP-Service. Auch hier muss in /etc/netp.conf ein IPv6-ansprechbarer Zeitserver eingetragen werden. Eine Möglichkeit ist ntp.eu.sixxs.net, hinter dem sich viele andere NTP-Server verbergen.

FTP-Server

Nutzbar ist der vsftpd. Neben der Standardkonfiguration ist es notwendig, in der /etc/vsftpd.conf den Parameter listen_ipv6 zu aktivieren und dafür listen auszukommentieren.

Webmin:

Webmin ist ein schwierigerer Fall. Die Quelle ist nicht per IPv6 erreichbar. Wegen automatischer Weiterleitungen, in denen dann IPv4-Adressen vorkommen, geht auch der Sixxs-Proxy nicht. Es bleibt dann nur, das Installationsarchiv auf einen anderen Rechner zu laden und dann mit FTP hochzuladen. Nach Installieren der Voraussetzungen lässt sich webmin installieren.

Nächstes Problem: Der Webmindienst ist nicht über IPv6 erreichbar, aber über IPv4 (nachprüfbar mit netstat -nlp). Hier bleibt nun eine Möglichkeit: Mit lynx textbasiert in den lokalen webmin einloggen und in der Webmin-Konfiguration IPv6 zulassen und speichern. Dann funktioniert der Zugriff. Im Nachhinein stellt sich heraus, dass dieser aufwändige Weg unnötig ist, wenn man direkt in /etc/webmin/miniserv.conf einträgt ipv6=1.

Webserver und ssh-Server sind direkt erreichbar, Software-Updates funktionieren.

Rootserver-Backup mit Tartarus und Linux Hot Copy

Eine Anleitung für Tartarus ist im Hetzner-Wiki zu finden. Da das Filesystem nicht mit LVM angelegt ist, gehen auch keine LVM-Snapshots, die von Tartarus unterstützt würden. Statt dessen wird das Linux Hot Copy von R1Soft verwendet.

Täglich morgens um 5 Uhr wird ein Vollbackup des Systems (/) erstellt. Der Server verwendet RAID 0 und hat zwei Partitionen /dev/md1 und /dev/md2.

Vor dem Backup wird mit Linux Hot Copy ein (Blockdevice-)Snapshot der Partitionen /dev/md1 (/boot) und /dev/md2 (/) erstellt und nach /var/hotcopy/md2_hcp1 gemountet.

Das gemountete Snapshot-Verzeichnis wird dann mit Tartarus (als Filebackup) gesichert.

Dazu dient folgendes Cron-gesteuerte Skript:

#!/bin/sh
# /usr/local/sbin/backup.sh
# Run all backup profile found in /etc/tartarus/ and pass
# command line arguments on to tartarus (e.g. -i)
/usr/sbin/hcp -m /var/hotcopy/md2_hcp1 /dev/md2
/usr/sbin/hcp -m /var/hotcopy/md2_hcp1/boot /dev/md1
for profile in /etc/tartarus/*.conf; do
/usr/sbin/tartarus $* "$profile"
done
/usr/sbin/hcp -r /dev/hcp2/usr/sbin/hcp -r /dev/hcp1

Die Profildatei /etc/tartarus/snap.conf für das Snapshop-Verzeichnis ist:

# Allgemeine Einstellungen einlesen
source /etc/tartarus/generic.inc
# Name des Sicherungsprofils
NAME="snap"
# Verzeichnis / sichern
DIRECTORY="/var/hotcopy/md2_hcp1"
# Keine temporären Dateien sichern
# mehrere Ordner durch Leerzeichen trennen
EXCLUDE="/var/hotcopy/md2_hcp1/tmp/ /var/hotcopy/md2_hcp1/var/spool/postfix/private/"
# keinen LVM-Snapshot erstellen
CREATE_LVM_SNAPSHOT="no"
INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/snap-timestamps"

Nach dem Backup werden die Snapshots wieder gelöscht (in der richtigen Reihenfolge, sonst geht der umount schief).

Das Backup befindet sich dann als verschlüsselte Archivdatei auf dem Hetzner-Backupserver.

Zum Restore muss die Archivdatei geholt und in einem Verzeichnis ausgepackt werden. Dann hat man Zugriff auf die Dateien.

iRedMail

iRedMail ist eine Skriptsammlung, die alle wesentlichen Komponenten eines Mailsystems installiert und vorkonfiguriert. Dazu gehören auch das die Erstellung von Schlüsseln für verschlüsselten Zugang zu den Diensten oder das Anlegen von Datenbanken in Mysql (oder LDAP) und das Ergänzen der Apache-Konfiguration.

In der derzeit aktuellen Version iRedMail 0.7.1 wird als Verwaltungstool iredadmin verwendet. Ich habe aber lieber postfixadmin wegen des etwas größeren Leistungsumfangs und habe die Version 2.3.3 installiert.

Großer Vorteil von iRedMail ist die vollständige Installation aller benötigen Teile und deren sinnvolle Vorkonfiguration. Großer Nachteil ist, dass es nicht möglich ist, Updates einzuspielen. Wenn man eine Version über eine vorhandene drüberinstalliert, kommt man in Teufels Küche. Manche Dienste laufen nicht mehr, Datenbankpasswörter stimmen nicht mehr. Es ist jedenfalls eine Menge Handarbeit angesagt, um die Installation wieder ans Laufen zu bekommen. Bleibt nur eines: Nur ein einziges Mal iRedMail installieren und dann nur noch nach den Upgrade-Hinweisen in der Homepage der Software richten. Paketupgrades im Betriebssystem haben bisher immer funktioniert, ohne Fehler nach sich zu ziehen. Dies liegt sicherlich daran, dass Paketupgrades normalerweise die Konfigurationsdateien beibehalten (jedenfalls kann man das beim Installieren so bestimmen).

Auch ein Deinstallieren der Software geht zwar mit Hilfe eines Skripts, man muss aber dennoch genau aufpassen, wie man welche Frage bei der Deinstallation beantwortet.

In iRedmail enthalten ist der Webmail-Dienst roundcube. Dieser ist, ergänzt um ein paar Plugins, gut zu gebrauchen. Er erlaubt es Benutzern, neben der umfassenden Mailhandhabung, Passwörter zu ändern, und Filter für Spam, Weiterleitungen oder Abwesenheit (mittels Plugin managesieve und sieve-Skripten) zu konfigurieren.

USB-Stick zum Booten verwenden

Mit UNetbootin lassen sich Betriebssystem-ISO-Images so auf einen USB-Stick bringen, dass man davon booten kann (wenn es der Rechner mitmacht). So kann man auch auf Rechnern Betriebssysteme installieren, die kein eingebautes CD/DVD-Laufwerk haben.

Im Prinzip liese sich damit auch ein Netzwerkboot (mit etherboot) auf Rechnern realisieren, die kein PXEboot unterstützen. Das ist aber ein eigenes Projekt.

Clonen und Systemkopie mit Clonezilla

Mit Hilfe von Clonezilla kann man die Festplatte der Laborrechner mit Ihren unterschiedlichen Partitionen und Betriebssystemen (siehe Triple Boot) auf eine externe Platte oder auf ein SMB- oder NFS-Laufwerk sichern. Dabei werden Dateien und Verzeichnisse kopiert, leere Bereiche übersprungen. Trotz HFS, NTFS und ext-Filesystemen geht das !

Auf diese Weise wurden nach dem Einrichten eines Masterrechners alle 13 anderen Rechner geclont.

Nach dem Clonen ist anzupassen:

Mac OS X:

  • Rechnername
  • IP-Adresse

 

Windows 7

  • Rechnername
  • IP-Adresse

 

Ubuntu

  • /etc/hostname
  • IP-Adresse