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>
211 lines
5.2 KiB
Markdown
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++:
|
|
|
|

|