Clonezilla- und Klon-Anleitung auf neuen Reimage-Ablauf umstellen

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-13 13:25:57 +02:00
parent 72d0b11647
commit 313cfae828
2 changed files with 83 additions and 174 deletions

View File

@@ -1,110 +1,36 @@
# Anleitung: Nach dem Klonen
Diese Anleitung gilt NACHDEM du:
- Das Image mit Clonezilla aufgespielt hast
- Das First-Boot-Script ausgefuehrt hast (`sudo ~/ansible-schule/files/first-boot-setup.sh laptopXX`)
Gilt fuer die **Erstinstallation per USB-Stick** (Weg 3 in
`CLONEZILLA_AUTOMATISCH.md`). Beim automatischen Jahres-Reimage von der
externen Platte ist NICHTS davon noetig — dort passiert alles von selbst.
---
## Auf dem Controller (laptop03)
### Schritt 1: IPs aktualisieren
## Auf dem frisch geklonten Laptop (einmalig)
```bash
cd ~/ansible-schule
./update-ips.sh
sudo ~/projekte/schul-laptops/files/first-boot-setup.sh laptopXX
```
Das Script findet automatisch alle eingeschalteten Laptops im Netzwerk und traegt ihre IPs in die inventory.yml ein.
Das Script setzt Hostname, SSH-Host-Keys und Machine-ID, entfernt den
Admin-Key (ausser auf laptop03) und aktiviert den ansible-pull-Timer.
**Das war's** — ab jetzt holt sich der Laptop alle 30 Minuten selbst
Updates und Konfiguration aus Gitea, egal in welchem Netz er haengt.
**Erwartete Ausgabe:**
```
=== IP-Adressen aktualisieren ===
laptop01: 192.168.x.x
laptop02: nicht erreichbar
laptop03: 192.168.x.x
...
=== Fertig ===
Aktualisiert: 5
Nicht erreichbar: 11
```
---
### Schritt 2: Verbindung testen
## Kontrolle (optional)
```bash
ansible all -m ping
systemctl list-timers ansible-pull* # Timer aktiv?
journalctl -u ansible-pull -n 30 # letzter Pull-Lauf ok?
cat /etc/schul-image-version # installiertes Image
```
**Erfolg sieht so aus:**
```
laptop03 | SUCCESS => { "ping": "pong" }
laptop10 | SUCCESS => { "ping": "pong" }
```
**Fehler ignorieren** fuer Laptops die nicht eingeschaltet sind - das ist normal.
---
### Schritt 3: Updates auf alle erreichbaren Laptops
```bash
ansible-playbook playbooks/update.yml
```
Oder nur auf bestimmte:
```bash
ansible-playbook playbooks/update.yml --limit laptop10,laptop11
```
---
## Schnellreferenz
| Was | Befehl |
|-----|--------|
| IPs aktualisieren | `./update-ips.sh` |
| Alle pingen | `ansible all -m ping` |
| System-Update | `ansible-playbook playbooks/update.yml` |
| Software installieren | `ansible-playbook playbooks/install-software.yml -e "packages=['vlc']"` |
| Neustarten | `ansible-playbook playbooks/reboot.yml` |
| Nur bestimmte Rechner | `--limit laptop05,laptop06` |
---
## Problemloesungen
### "nicht erreichbar" bei update-ips.sh
- Ist der Laptop eingeschaltet?
- Ist er im gleichen Netzwerk (WLAN/Kabel)?
- Wurde das First-Boot-Script ausgefuehrt?
### SSH-Fehler "Host key verification failed"
```bash
ssh-keygen -R 192.168.x.x
```
(Die IP durch die tatsaechliche IP ersetzen)
### Ansible findet inventory nicht
Immer aus dem richtigen Verzeichnis ausfuehren:
```bash
cd ~/ansible-schule
```
---
## Checkliste neuer Laptop
- [ ] Image mit Clonezilla aufgespielt
- [ ] First-Boot-Script: `sudo ~/ansible-schule/files/first-boot-setup.sh laptopXX`
- [ ] Auf Controller: `./update-ips.sh`
- [ ] Testen: `ansible laptopXX -m ping`
- [ ] Image per Stick aufgespielt (nimmt automatisch das neueste)
- [ ] `sudo files/first-boot-setup.sh laptopXX` ausgefuehrt
- [ ] `journalctl -u ansible-pull` zeigt einen erfolgreichen Lauf
## Legacy: Push-Betrieb im Heimnetz
Nur noetig, wenn du aktiv per Push arbeiten willst (funktioniert nicht im
Schul-WLAN) — siehe README.md, Abschnitt „Legacy“ (`update-ips.sh`,
`ansible-playbook playbooks/...`).