Periodische Snapshots mit Proxmox

13 Mär 2020 Lesezeit: 3 Minuten

Ich liebe ja Proxmox. Es ist so herrlich einfach und ziemlich gut durchdacht. Es bietet viele Möglichkeiten zu realisieren was man sich vorstellt und so sehr individuelle Umgebungen zu bauen.

Was es leider nicht mitbringt ist die Möglichkeit periodisch snapshots der vorhandenen VMs zu machen und so zumindest einen Zwischenstand für kritische Systeme zu erzeugen, bei denen es vielleicht nicht angebracht ist alle Stunde ein Backup zu machen.

Dennoch gibt es dazu eine tolle Lösung die weitestgehend auf die Boardmittel zurück greift - Danke an Corsinvest für cv4pve-autosnap.

Zunächst legt man sich einen neuen Benutzer innerhalb von Proxmox an, unter dessen Fahne man zukünftig automatisiert die Snapshots macht. Dabei macht es sinn auf die lokale Proxmox Datenbank zurück zu greifen.

Proxmox Snapshotuser

Natürlich braucht dieser Benutzer auch Berechtigungen:

Proxmox Snapshot Permissions

Anschließend schnappt man sich das kleine feine Tool:

wget https://github.com/Corsinvest/cv4pve-autosnap/releases/latest/download/cv4pve-autosnap-linux-x64.zip
unzip cv4pve-autosnap-linux-x64.zip
chmod +x cv4pve-autosnap
mv cv4pve-autosnap /usr/local/bin/ #OPTIONAL

Anschließend schaut man brav die Optionen an:

    ______                _                      __
   / ____/___  __________(_)___ _   _____  _____/ /_
  / /   / __ \/ ___/ ___/ / __ \ | / / _ \/ ___/ __/
 / /___/ /_/ / /  (__  ) / / / / |/ /  __(__  ) /_
 \____/\____/_/  /____/_/_/ /_/|___/\___/____/\__/

Automatic snapshot VM/CT with retention        (Made in Italy) 1.7.2

Automatic snapshot VM/CT with retention

Usage: cv4pve-autosnap [options] [command]

Options:
  -?|-h|--help      Show help information
  --version         Show version information
  --host            The host name host[:port],host1[:port],host2[:port]
  --username        User name <username>@<realm>
  --password        The password. Specify 'file:path_file' to store password in file.
  --vmid            The id or name VM/CT comma separated (eg. 100,101,102,TestDebian)
                    -vmid or -name exclude (e.g. -200,-TestUbuntu)
                    'all-???' for all VM/CT in specific host (e.g. all-pve1, all-\$(hostname)),
                    'all' for all VM/CT in cluster
  --timeout         Timeout operation in seconds

Commands:
  app-check-update  Check update application
  app-upgrade       Upgrade application
  clean             Remove auto snapshots
  snap              Will snap one time
  status            Get list of all auto snapshots

Run 'cv4pve-autosnap [command] --help' for more information about a command.

cv4pve-autosnap is a part of suite cv4pve-tools.
For more information visit https://www.cv4pve-tools.com

Nun ist es so weit: Shell auf und los geht es. Zunächst einmal fülle ich die Variablen, dann spiele ich mit den Einstellungen und Möglichkeiten des Werkzeuges. Wenn man seine Lösung gefunden hat, dann kann man daraus auch gleich einen Cronjob oder einen Rundeck-Task oder ein skript machen. So einfach ist das:

PROXMOXHOSTS=PVE01,PVE02,PVE03
PROXMOXUSER=Snapshotuser@pve
PROXMOXPASSWORD=SUP3rDup3rGehe1m
PROXMOXLABEL=takecareofit

/path/to/cv4pve-autosnap --host=$PROXMOXHOSTS --username=$PROXMOXUSER--password='$PROXMOXPASSWORD' --vmid=all snap --label='$PROXMOXLABEL' --keep=23

Quellen und Links:


Rundeck mit ContextPath hinter Apache als reverse proxy

27 Apr 2019 Lesezeit: 2 Minuten

Wer wie ich ein Rundeck betreibt, damit er die fürchterlich anstrengenden, wiederkehrenden, komplizierten und zugleich anmutenden alltäglichen Aufgaben unter einem Dach zusammenfassen und ggf sogar den Kollegen zugänglich machen kann betreibt, der möchte das natürlich auch schön haben.

Schön bedeutet in diesem Falle hinter einem reversproxy mit SSL und Cache und natürlich einem Contextpath, damit man seine Werkzeugsammlung auch auf einem Server schick aufbereitet über eine entsprechende URL ansteuern kann.

Dazu ist eine Anpassung in der Datei /etc/rundeck/rundeck-config.properties notwendig

grails.serverURL=http://MEINSERVER.MEINEDOMAIN.TLD/rundeck
server.address = 127.0.0.1
server.port = 4440
server.contextPath=/rundeck
/etc/rundeck/framework.properties
framework.server.name = MEINSERVER.MEINEDOMAIN.TLD
framework.server.hostname = MEINSERVER.MEINEDOMAIN.TLD
framework.server.port = 4440
framework.server.url = http://MEINSERVER.MEINEDOMAIN.TLD/rundeck
framework.rundeck.url = /rundeck

Wie man seinen Reversproxy dann für den Pfad /rundeck konfiguriert erkläre ich jetzt einfach mal nicht. Jedenfalls startet Rundeck (vielleicht muss man noch das Java-Zeug einmal mit einem Neustart oder so beglücken wegen Cache und so) nun mit der URL /rundeck.

Quellen und Hinweise