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>
This commit is contained in:
co-authored by
Claude Opus 5
parent
c484596702
commit
59e7224297
@@ -0,0 +1,156 @@
|
||||
# Installation
|
||||
|
||||
## Der übliche Weg
|
||||
|
||||
Auf dem Proxmox-Host als `root`:
|
||||
|
||||
```bash
|
||||
git clone <dieses-repo> pvesnap && cd pvesnap
|
||||
./install.sh # nur der Snapshot-Dienst
|
||||
./install.sh --with-webexplorer --port 8823 # zusätzlich die Web-Oberfläche
|
||||
./install.sh --help # alle Optionen
|
||||
```
|
||||
|
||||
Das Skript prüft zuerst, ob es wirklich auf einem Proxmox-VE-Host läuft, und
|
||||
bricht sonst ab. Wer es trotzdem will — etwa zum Ausprobieren in einer VM —
|
||||
nimmt `--force`.
|
||||
|
||||
### Optionen
|
||||
|
||||
| Option | |
|
||||
|---|---|
|
||||
| `--with-webexplorer` | Web-Oberfläche als Dienst einrichten (**erfordert `--port`**) |
|
||||
| `--port <nummer>` | Port der Web-Oberfläche |
|
||||
| `--bind <adresse>` | Adresse, auf der sie lauscht (Vorgabe `0.0.0.0`) |
|
||||
| `--no-start` | installieren, aber Dienste nicht starten |
|
||||
| `--no-install-deps` | fehlende Werkzeuge (`parted`, `exfatprogs`) nicht nachinstallieren |
|
||||
| `--force` | auch ohne erkanntes Proxmox VE installieren |
|
||||
|
||||
`--port` hat bewusst **keine Vorgabe**. Es gibt keine Portnummer, die auf jedem
|
||||
Host frei ist, und ein stillschweigend gewählter Port wäre genau die Art
|
||||
Überraschung, die man auf einem Hypervisor nicht braucht.
|
||||
|
||||
---
|
||||
|
||||
## Was installiert wird
|
||||
|
||||
| Pfad | Inhalt |
|
||||
|---|---|
|
||||
| `/usr/lib/pvesnap/` | Programmcode |
|
||||
| `/usr/local/bin/pvesnap` | Dienst und Konfiguration |
|
||||
| `/usr/local/bin/pvesnap-explorer` | Zwei-Fenster-Explorer |
|
||||
| `/usr/local/bin/pvesnap-web` | Web-Oberfläche |
|
||||
| `/usr/local/bin/pvesnap-recovery` | Snapshot als Maschine starten |
|
||||
| `/etc/pvesnap/pvesnap.conf` | Konfiguration — bei Updates **nicht** überschrieben |
|
||||
| `/etc/pvesnap/web.conf` | Port und Anmeldeart der Web-Oberfläche |
|
||||
| `/var/lib/pvesnap/state.json` | merkt sich die letzten Läufe |
|
||||
| `/var/lib/pvesnap/transfer/` | [Austauschlaufwerke](wiederherstellen/transfer.md) |
|
||||
| `/etc/systemd/system/pvesnap.service` | Unit des Snapshot-Dienstes |
|
||||
| `/etc/systemd/system/pvesnap-web.service` | Unit der Web-Oberfläche |
|
||||
|
||||
### Zusätzliche Pakete
|
||||
|
||||
Zwei Werkzeuge werden bei Bedarf nachinstalliert:
|
||||
|
||||
| Paket | wofür |
|
||||
|---|---|
|
||||
| `parted` | Partitionstabelle der Austauschlaufwerke |
|
||||
| `exfatprogs` | deren Dateisystem (exFAT) |
|
||||
|
||||
Ohne sie funktioniert alles außer den Austauschlaufwerken. Mit
|
||||
`--no-install-deps` bleibt das System unangetastet; die Laufwerksverwaltung
|
||||
sagt dann beim Öffnen, was fehlt.
|
||||
|
||||
!!! info "Warum kein `ntfs-3g`?"
|
||||
|
||||
exFAT reicht: Windows und Linux lesen und schreiben es von Haus aus, es
|
||||
kennt keine 4-GB-Grenze pro Datei und speichert keine Besitzrechte — was
|
||||
beim Austausch zwischen Systemen ein Vorteil ist, kein Mangel. Mehr dazu
|
||||
unter [Austauschlaufwerke](wiederherstellen/transfer.md#warum-exfat).
|
||||
|
||||
---
|
||||
|
||||
## Aktualisieren
|
||||
|
||||
```bash
|
||||
cd pvesnap
|
||||
git pull
|
||||
./install.sh --with-webexplorer --port 8823
|
||||
```
|
||||
|
||||
Dieselben Parameter wie beim ersten Mal — sonst wird die Web-Oberfläche nicht
|
||||
wieder mit eingerichtet.
|
||||
|
||||
**Die Konfiguration bleibt.** `/etc/pvesnap/pvesnap.conf` wird nie
|
||||
überschrieben.
|
||||
|
||||
**Eine laufende Web-Oberfläche wird sauber angehalten**, bevor der Code
|
||||
ausgetauscht wird, und danach wieder gestartet. Das ist wichtig, weil sie
|
||||
möglicherweise noch einen Snapshot eingebunden hat — den Prozess einfach unter
|
||||
den Füßen wegzuziehen würde eine Einbindung zurücklassen.
|
||||
|
||||
Sitzt ein **fremder** Prozess auf dem Port, gibt es eine Warnung samt PID, aber
|
||||
kein automatisches Beenden. Es könnte schließlich etwas ganz anderes sein.
|
||||
|
||||
---
|
||||
|
||||
## Deinstallation
|
||||
|
||||
```bash
|
||||
./uninstall.sh # Programm und Dienst entfernen, Konfiguration bleibt
|
||||
./uninstall.sh --purge # zusätzlich /etc/pvesnap und /var/lib/pvesnap löschen
|
||||
```
|
||||
|
||||
!!! danger "Was `--purge` mitnimmt"
|
||||
|
||||
Auch die **Austauschlaufwerke** unter `/var/lib/pvesnap/transfer/`. Was
|
||||
dort an Werkzeugen und Dumps liegt, ist danach weg. Ohne `--purge` bleibt
|
||||
alles liegen.
|
||||
|
||||
**Bereits angelegte Snapshots werden nie angerührt** — weder beim Entfernen
|
||||
noch beim Aktualisieren. Sie gehören Proxmox, nicht pvesnap.
|
||||
|
||||
Laufen noch [Wiederherstellungen](wiederherstellen/index.md), warnt
|
||||
`uninstall.sh` davor. Die sollten vorher mit `pvesnap-recovery destroy`
|
||||
verworfen werden, sonst bleiben Klone und geschützte Snapshots liegen.
|
||||
|
||||
---
|
||||
|
||||
## Die systemd-Unit
|
||||
|
||||
Ein Punkt, der später viel Zeit sparen kann: Die mitgelieferte Unit enthält
|
||||
**bewusst keine Sandbox-Optionen**.
|
||||
|
||||
```ini
|
||||
# NICHT in die Unit aufnehmen:
|
||||
ProtectSystem=strict
|
||||
ProtectHome=yes
|
||||
PrivateTmp=yes
|
||||
```
|
||||
|
||||
Der Grund ist unangenehm indirekt. `pvesh` führt die Proxmox-API im eigenen
|
||||
Prozess aus — der Snapshot-Task ist also ein *Kindprozess von pvesnap* und erbt
|
||||
dessen Einschränkungen. `ProtectSystem=` hängt `/etc` schreibgeschützt ein, und
|
||||
pmxcfs legt seine Sperren als Verzeichnisse unter `/etc/pve/priv/lock/` an. Das
|
||||
`mkdir` scheitert, Proxmox versucht es erfolglos weiter — und meldet am Ende
|
||||
keinen Rechtefehler, sondern:
|
||||
|
||||
```
|
||||
TASK ERROR: cfs-lock 'storage-data' error: got lock request timeout
|
||||
```
|
||||
|
||||
Man sucht dann tagelang am Storage. `pvesnap check` weist von sich aus darauf
|
||||
hin; mehr dazu unter [Fehlersuche](nachschlagen/fehlersuche.md#storage-lock).
|
||||
|
||||
---
|
||||
|
||||
## Nach der Installation
|
||||
|
||||
```bash
|
||||
systemctl status pvesnap # läuft der Dienst?
|
||||
pvesnap check # ist die Konfiguration stimmig?
|
||||
journalctl -u pvesnap -f # was tut er gerade?
|
||||
```
|
||||
|
||||
Weiter geht es beim [Schnellstart](schnellstart.md#2-gaste-markieren) oder
|
||||
direkt im Kapitel [Sichern](sichern/index.md).
|
||||
Reference in New Issue
Block a user