
cp /etc/network/interfaces /etc/network/interfaces-bup


auto lo
iface lo inet loopback
auto enp0s25
iface enp0s25 inet manual
auto enxa0cec88afd37
iface enxa0cec88afd37 inet manual
auto bond0
iface bond0 inet manual
bond-slaves enp0s25 enxa0cec88afd37
bond-miimon 100
bond-mode active-backup
bond-primary enp0s25
auto vmbr0
iface vmbr0 inet static
address 192.168.88.100/24
gateway 192.168.88.1
bridge-ports bond0
bridge-stp off
bridge-fd 0
source /etc/network/interfaces.d/*

Damit der PVE (oder das Cluster) eMails senden kann, muss man zunächst die dazu erforderliche Software installieren und konfigurieren. Zunächst meldet man sich auf der Shell des Hosts als root an. Dann installiert man die benötigten Pakete
apt install postfix libsasl2-modules -y
Dann muss man die Datei "/etc/postfix/main.cf" bearbeiten.
nano /etc/postfix/main.cf
Dort kommentiert man die Zeichenkette "relayhost =" aus und fügt ein:
relayhost = smtpserver:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous
smtp_tls_cert_file = /etc/pve/local/pve-ssl.pem
smtp_tls_key_file = /etc/pve/local/pve-ssl.key
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_tls_security_level = may
sender_canonical_classes = envelope_sender, header_sender sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps smtp_header_checks = regexp:/etc/postfix/header_check
Danach muss man die Absenderadresse anpassen:
nano /etc/postfix/sender_canonical_maps /.+/ proxmox@absender.koeln
zweimal:
nano /etc/postfix/header_check /From:.*/ REPLACE From: proxmox@absender.koeln
Die Benutzerdaten sind gesichert zu hinterlegen:
nano /etc/postfix/sasl_passwd
accountname.smtpserver.com:587 {Username}:{Passwort}
und daraus eine gehashte Datenbankdatei zu erstellen:
postmap /etc/postfix/sasl_passwd
Nun müssen die Zugriffsrechte angepasst werden:
chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
und Postfix ein allgemeines Zertifikat zugewiesen werden:
cat /etc/ssl/certs/ssl-cert-snakeoil.pem | tee -a /etc/postfix/cacert.pem
Danach ist der Postfixdienst neu zu starten:
postfix reload
und die Absenderadresse in der Web-GUI unter "Datacenter/Options/Email from address" einzutragen. Danach kann man das wieder auf der Shell testen:
echo "Proxmox SMTP Test" | mail -s "SMTP Test" mail@hanswurst.de -r proxmox@absender.koeln
Unter Datacenter/Backup werden die Backup-Jobs verwaltet. Um einen neuen Backup-Job einzurichten, klickt man hier auf "Add". In dem sich hier öffnenden Dialog kann man zunächst auswählen, welche Gäste welcher Nodes gesichert werden sollen. Wenn man kein Cluster hat, dann ist es egal, ob man das voreingestellte "-- All --" stehen lässt oder den einzigen Knoten auswählt, den man hat. Der nächste Eintrag "Storage" ist schon interessanter. Voreingestellt ist hier "local". Man kann jeden Speicher auswählen, den man dem Knoten oder Cluster mit dem erlaubten Content "VZdump backup file" zugewiesen hat. Idealerweise nutzt man hier einen Proxmox Backup Server. Unter Schedule gibt man die Zeitplanung für die regelmäßigen Backups vor. Das ist selbsterklärend. Unter "Selection Mode" wählt man aus, ob die darunter ausgewählten VMs eingeschlossen oder ausgeschlossen werden sollen, ob alle VMs des Knotens oder Clusters eingeschlossen werden oder ob man Poolbasiert sichern möchte. VMs ist hier gleichbedeutend mit LXCs zu verstehen.
Unter "Notification mode" ist "auto" voreingestellt, was so bleiben kann. Unter "Send email to" kann man eine eMailadresse eingeben, an die Mails zu Erfolg oder Misserfolg von Sicherungen gesendet werden. Wenn man dort eine Adresse eingibt, dann kann man noch auswählen, ob jedes Mal eine Mail geschickt wird oder nur bei Misserfolg. Wichtig: Damit die email notification funktioniert muss der PVE (oder das Cluster) in der Lage sein, eMails zu senden (s. hier Abschnitt "eMail-Benachrichtigung einrichten").
Wenn man einen PBS nutzt, dann kann man den Reiter "Retention ignorieren, weil die Retention dort geregelt ist. Die Reiter "Note Template" und "Advanced" kann man ignorieren.

Restores kann man über die Web-GUI des PVE oder Clusters durchführen. Man wählt entweder den Gast aus und klickt auf "Backup". Um die Sicherungen, die nicht auf dem local Storage liegen, zu sehen, muss man das Auswahlfeld "Storage" bemühen und dort den verwendeten Storage, z.B. den PBS auswählen. Dann werden die verfügbaren Sicherungen angezeigt. Wenn man das Häkchen "Filter VMID" entfernt, dann werden auch die Sicherungen anderer Gäste angezeigt. Dabei werden für VMs immer nur die vorhandenen Sicherungen der VMs angezeigt und für LXCs die der LXCs. Das ist nicht ganz sinnfrei, denn ein Restore einer VM auf einen LXC oder umgekehrt dürfte nicht funktionieren.
Ein anderer Weg, Restores zu starten, ist über den Backup-Storage, den man über die Web-GUI des Knotens oder Clusters direkt anspricht. Wenn man den Backup-Storage (z.B. PBS1) auswählt, dann hat man die Auswahlmöglichkeiten "Summary", "Backup" und "Permissions". Unter Backup werden alle verfügbaren Backups angezeigt. Wir können einfach ein Backup auswählen und einen Restore oder ein File Restore anstoßen. Auf diese Weise kann man auch einen Proxmox-Gast von einem PVE auf einen anderen umziehen (s.u.).
Wenn man eine Sicherung ausgewählt hat, dann kann man mit dem Button "Restore" einen kompletten Restore des Gastes auf einen früheren Sicherungsstand anstoßen. Dabei werden alle Daten gelöscht. Laufwerke, die vorher nicht vorhanden waren, werden eingebunden oder erstellt und Laufwerke, die vor der letzten Sicherung noch nicht vorhanden waren, werden abgeklemmt. Es könnte hier also nicht schaden, wenn man wüsste, was man tut. Bei einem kompletten Restore werden auch alle anderen Parameter des Gastes, also CPUs, RAM, Netzwerk usw. zurück gesetzt.

Wenn man nur einzelne Dateien wieder herstellen möchte, dann wählt man den Button "File Restore" aus. Es erscheint ein Dateiauswahldialog, in dem man einzelne Dateien oder Verzeichnisse zum Download auswählen kann. Der Download wird dann natürlich nicht auf den Gast, sondern über den Browser lokal durchgeführt.
Man kann auf einem PVE einen Server recovern, der dort bisher gar nicht vorhanden war. Dazu muss auf dem PBS eine Sicherung des umzuziehenden Servers vorhanden sein. Auf dem Ziel-Knoten wählt man den Backup-Storage aus und stößt einen Full-Restore an. Es wird eine neue ID vorgeschlagen. Hier muss man darauf achten, dass es diese ID nicht schon einmal im Netz gab. Nach diesem Umzug muss man ggf. noch die Netzwerkparameter anpassen und dann kann man das umgezogene System auch schon hochfahren.
Um auch den PVE über den PBS sichern zu können, müssen zunächst auf dem PBS ein Sicherungs-User und ein API-Token erzeugt werden. Auf der Web-GUI des PBS unter "Access Control/User Management" wird zunächst ein neuer User angelegt. Hier kann man einen beliebigen (am besten sprechenden) Namen vergeben. Unter "Realm" ist vorausgewählt "Proxmox Backup authentication server", was übernommen werden muss. Dann vergibt man ein Passwort (das aber später nicht unmittelbar verwendet wird). Alle anderen Angaben kann man übernehmen bzw. leer lassen. Bei der Erzeugung des API-Tokens brauchen wir nur einen Token Namen vergeben. Nach dem Klick auf "Add" wird ein Token Secret angezeigt. Dabei wird sehr deutlich darauf hingewiesen, dass dieser Token nicht erneut angezeigt wird. Er muss also weggesichert werden. Nun muss man unter "Permissions" dem user und dem Token die Berechtigungsrolle "DatastorBackup" ab dem Pfad /datastor/{Name des Datastors} geben.
Danach muss ein Namespace für die Sicherungen erzeugt werden. Auf der Web-GUI des PBS unter "Datastor" wird der Sicherungsspeicher ausgewählt und über die Schaltfläche "Add Namespace" ein Namespace hinzugefügt. Der Parent Namespace Root ist vorausgewählt und kann so bleiben. Den Namespace Namen kann man frei vergeben.
Damit ist auf Seiten des PBS alles vorbereitet. Nun muss ein Skript auf dem PVE angelegt werden. Ich habe dazu auf dem PVE ein Verzeichnis /services/skripte angelegt und dort die Datei backup.sh erstellt:
#!/bin/bash
export PBS_REPOSITORY=sys-pve01@pbs!sys-pve01@10.10.0.10:zfsbup
export PBS_PASSWORD=fab7a49d-82a8-4504-salat-undmuell
export PBS_FINGERPRINT=ec:47:11:08:15:11:88:00:...:19:58:fe:ad:43
proxmox-backup-client backup etc.pxar:/etc/ etcpve.pxar:/etc/pve/ --ns pve01
PBS_PASSWORD ist natürlich der Secret-Code, der uns eben angezeigt wurde und den Fingerprint des PBS kopieren wir von der Web-GUI des PBS (s.o.). Gesichert werden die Verzeichnisse "/etc" und "/etc/pve". Letzteres ist ein eigener Mount-Pont auf dem PVE und nicht wirklich ein Unterverzeichnis von "/etc". Es würde also nicht mit gesichert, wenn man nur "/etc" sichern würde. Das Script muss noch ausführbar gemacht werden mit
chmod 700 backup.sh
und kann dann erstmals ausgeführt werden. Damit das automatisch regelmäßig passiert, trägt man noch einen entsprechenden Task in die Datei "/etc/crontab" des PVE ein, z.B.:
30 12 * * * root /services/skripte/backup.sh
Jetzt werden die Daten aus Verzeichnis /etc/ und /etc/pve täglich um 12:30 Uhr gesichert.