Files
duffyduckandClaude Opus 5 59e7224297 Handbuch auf MkDocs-Basis, mit Bildschirmfotos aus dem Programm
26 Kapitel in vier Teilen, in der Reihenfolge, in der man sie braucht:
erst sichern, dann Dateien holen, dann ganze Maschinen wiederherstellen,
dahinter der Nachschlagteil.

Gebaut wird mit MkDocs + Material. Bewusst ohne Netzabhaengigkeiten:
keine Schriften vom CDN (font: false), Volltextsuche mit deutschem
Stemming liegt neben den Seiten. Im Notfall steht vielleicht das halbe
Netz - dann nuetzt eine Doku im Internet nichts.

  handbuch/bauen.sh              baut handbuch/site/
  handbuch/bauen.sh ansehen      Vorschau auf 127.0.0.1:8000

install.sh nimmt das gebaute Handbuch mit nach
/usr/share/doc/pvesnap/handbuch/ - falls es vorliegt. Auf dem Host selbst
wird nichts gebaut, mkdocs gehoert nicht auf einen Hypervisor.

Die 28 Bildschirmfotos sind nicht abfotografiert, sondern erzeugt: Der
echte Programmcode laeuft in einem Pseudo-Terminal gegen einen erfundenen
Proxmox-Host (Attrappen fuer pvesh, perl und rbd), pyte baut den Bildschirm
nach, heraus faellt ein SVG. Damit stimmen sie garantiert mit dem Programm
ueberein, sind reproduzierbar und enthalten keine echten Daten. Die
Werkstatt dafuer liegt unter handbuch/werkstatt/ samt LIESMICH.md.

Nebenbei: die Schlussmeldung von install.sh warb noch mit --exchange,
das mit dem eingebauten Austauschlaufwerk weggefallen ist.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-09 12:39:30 +02:00

211 lines
5.2 KiB
Markdown

# Welche Gäste?
Eine Gruppe sucht sich ihre Gäste über eine oder mehrere Regeln. Dabei gilt:
<div class="ablauf" markdown>
Alle Einschluss-Regeln wirken als **ODER** — wer *eine* davon erfüllt, ist dabei.
Alle Ausschluss-Regeln **gewinnen immer** — auch gegen `all = yes`.
</div>
```ini
all = yes # alle VMs und Container
vmids = 100,101,105-110 # nach ID, auch Bereiche
names = web-*, db-0? # nach Name, mit Platzhaltern
tags = produktion, wichtig # nach Proxmox-Tag
pools = Kunden # nach Proxmox-Pool
types = qemu # nur VMs (lxc = nur Container; leer = beides)
exclude_vmids = 999
exclude_names = *-test
exclude_tags = nosnap
```
Kontrollieren lässt sich das Ergebnis an zwei Stellen: unten in der
[Gruppenmaske](editor.md#eine-gruppe-bearbeiten) („Trifft aktuell zu auf …") und
mit `pvesnap vms`.
---
## Tags
**Der empfohlene Weg.** Die Auswahl steht dann bei der VM, nicht in der
Konfiguration — und eine neue Maschine ist mit einem Klick dabei, ohne dass
jemand `pvesnap.conf` anfassen muss.
```ini
tags = produktion
```
In Proxmox setzen:
```bash
qm set 101 --tags produktion,datenbank
pct set 110 --tags produktion
```
Oder in der Oberfläche unter **VM → Optionen → Tags**.
Groß- und Kleinschreibung ist egal; pvesnap vergleicht in Kleinbuchstaben.
Mehrere Tags an einer VM trennt Proxmox mit `;` oder `,` — beides wird gelesen.
!!! tip "Ein Tag je Zeitplan"
Bewährt hat sich, die Tags nach dem Sicherungsrhythmus zu benennen und
nicht nach der Funktion:
```ini
[group:stuendlich]
tags = stuendlich
[group:taeglich]
tags = produktion
```
Dann sieht man in der Proxmox-Oberfläche an jeder VM sofort, wie oft sie
gesichert wird — ohne die Konfiguration zu öffnen.
---
## VMIDs
```ini
vmids = 100,101,105-110,200
```
Einzelne IDs und Bereiche, durch Komma getrennt. Am bequemsten über die
[VM-Auswahl](editor.md#vms-aus-einer-liste-wahlen) im Editor.
Präzise, aber pflegeintensiv: Jede neue Maschine muss von Hand nachgetragen
werden. Für kleine, feste Zusammenstellungen in Ordnung, für alles Wachsende
sind Tags besser.
---
## Namensmuster
```ini
names = web-*, db-0?
```
| Zeichen | |
|---|---|
| `*` | beliebig viele Zeichen |
| `?` | genau ein Zeichen |
| `[abc]` | eines dieser Zeichen |
Praktisch bei sauberer Namenskonvention (`web-01`, `web-02`, `db-01`),
gefährlich ohne: Eine VM, die jemand `web-test-alt` nennt, fällt in `web-*`
hinein. Dagegen hilft ein `exclude_names = *-test`.
---
## Pools
```ini
pools = Kunden
```
Nach dem Proxmox-Pool. Sinnvoll, wenn die Pools ohnehin nach Kunde oder
Abteilung geschnitten sind — dann sichert eine Gruppe genau einen Mandanten.
---
## Gasttyp
```ini
types = qemu # nur virtuelle Maschinen
types = lxc # nur Container
types = # beides (Vorgabe)
```
Nützlich in Verbindung mit `vmstate = yes`, das ohnehin nur für QEMU gilt: Eine
Gruppe mit RAM-Sicherung für die VMs, eine ohne für die Container.
---
## Ausschlüsse
```ini
exclude_vmids = 999
exclude_names = *-test, temp-*
exclude_tags = nosnap, pvesnap-recovery
```
Ausschlüsse schlagen alles. Auch `all = yes`.
!!! success "Zwei Ausschlüsse, die in jede `all`-Gruppe gehören"
```ini
exclude_tags = nosnap, pvesnap-recovery
```
**`nosnap`** ist der Notausgang: Wer eine einzelne Maschine aus der
Sicherung nehmen will, setzt ihr das Tag — ohne die Konfiguration
anzufassen.
**`pvesnap-recovery`** trägt jede laufende
[Wiederherstellung](../wiederherstellen/index.md). Ohne den Ausschluss
bekämen diese kurzlebigen Maschinen eigene Snapshots — die dann wiederum
verhindern, dass sie sich sauber verwerfen lassen.
---
## Mehrere Regeln kombiniert
```ini
[group:taeglich]
tags = produktion
vmids = 300
exclude_names = *-test
exclude_tags = nosnap
```
Gelesen: *alles mit dem Tag `produktion`* **oder** *VM 300*, **aber nichts**,
was auf `-test` endet oder das Tag `nosnap` trägt.
---
## Gestoppte Gäste
```ini
skip_stopped = yes
```
Übergeht Gäste, die gerade aus sind. Vorgabe ist `no` — auch von einer
gestoppten Maschine wird ein Snapshot angelegt.
Beides ist vertretbar:
| | |
|---|---|
| `skip_stopped = no` | Der Stand ist gesichert, auch wenn die VM länger aus ist. Kostet bei kurzen Intervallen viele identische Snapshots. |
| `skip_stopped = yes` | Nur laufende Maschinen. Passt zu stündlichen Gruppen, spart Platz — aber eine über Wochen abgeschaltete VM bekommt gar nichts mehr. |
!!! note "Der Mischbetrieb"
Eine stündliche Gruppe mit `skip_stopped = yes`, eine monatliche mit
`skip_stopped = no`. Dann bekommt jede Maschine mindestens den monatlichen
Stand, und die laufenden zusätzlich die feine Auflösung.
---
## Nachsehen, was herauskommt
```bash
pvesnap vms
```
```
VMID Name Status Gruppen
100 web01 running stuendlich, taeglich, monatlich
101 db01 running stuendlich, taeglich, monatlich
120 build-test stopped (keine Gruppe)
```
Dasselbe im Editor unter Taste ++v++:
![Übersicht: welche VM in welcher Gruppe](../bilder/config-uebersicht.svg)