Files
schul-laptops/README.md
Herb bd4384c36f Bestand aus ~/ansible-schule uebernehmen (Push-Setup, Stand Feb 2026)
Playbooks, Inventory, update-ips.sh, first-boot-setup.sh und Doku
unveraendert aus dem alten git-losen Ordner uebernommen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 13:11:24 +02:00

145 lines
3.1 KiB
Markdown

# Ansible Setup - Schul-Laptops
12 Linux Mint Laptops verwalten mit Ansible + Clonezilla Backup.
## Erstes Setup (einmalig auf diesem Rechner)
### 1. Passwordless Sudo einrichten
Damit Ansible ohne Passwort arbeiten kann:
```bash
sudo visudo
```
Am Ende hinzufuegen:
```
puettmann ALL=(ALL) NOPASSWD: ALL
```
Speichern mit `Ctrl+X`, dann `Y`, dann `Enter`.
### 2. Inventory anpassen
Bearbeite `inventory.yml` und trage die richtigen IP-Adressen ein:
```bash
nano ~/ansible-schule/inventory.yml
```
## Workflow: Image auf andere Rechner spielen
### Schritt 1: Image erstellen (Clonezilla)
1. Clonezilla Live USB-Stick erstellen
2. Von USB booten
3. "device-image" → "savedisk" waehlen
4. Image auf externen Datentraeger speichern
### Schritt 2: Image auf Clients aufspielen
1. Von Clonezilla USB booten
2. "device-image" → "restoredisk" waehlen
3. Image auswaehlen, auf Festplatte spielen
### Schritt 3: First-Boot Setup (auf jedem geklonten Rechner)
```bash
sudo ~/ansible-schule/files/first-boot-setup.sh laptop05
```
(Ersetze `laptop05` durch den jeweiligen Hostnamen)
## Ansible Befehle
Alle Befehle aus dem Verzeichnis `~/ansible-schule` ausfuehren:
```bash
cd ~/ansible-schule
```
### Alle Rechner pingen
```bash
ansible-playbook playbooks/ping.yml
```
### System-Update auf allen Clients
```bash
ansible-playbook playbooks/update.yml
```
### Software installieren
```bash
# Standard-Pakete (in der Datei definiert)
ansible-playbook playbooks/install-software.yml
# Bestimmte Pakete
ansible-playbook playbooks/install-software.yml -e "packages=['firefox','vlc','gimp']"
```
### Nur bestimmte Rechner
```bash
ansible-playbook playbooks/update.yml --limit laptop05,laptop06
```
### Alle Clients neustarten
```bash
ansible-playbook playbooks/reboot.yml
```
### Schnelle Befehle ohne Playbook
```bash
# Shell-Befehl auf allen Clients
ansible clients -m shell -a "df -h"
# Paket installieren
ansible clients -m apt -a "name=htop state=present" --become
# Datei kopieren
ansible clients -m copy -a "src=./files/test.txt dest=/tmp/"
```
## Verzeichnisstruktur
```
~/ansible-schule/
├── ansible.cfg # Ansible-Konfiguration
├── inventory.yml # Liste aller Laptops mit IPs
├── README.md # Diese Datei
├── playbooks/
│ ├── ping.yml # Erreichbarkeit testen
│ ├── update.yml # System-Updates
│ ├── install-software.yml
│ ├── reboot.yml
│ └── set-hostname.yml
└── files/
└── first-boot-setup.sh # Nach Klonen ausfuehren
```
## Problemloesungen
### "Permission denied" bei SSH
```bash
# SSH-Key manuell kopieren
ssh-copy-id puettmann@192.168.1.105
```
### Rechner nicht erreichbar
```bash
# Einzelnen Rechner testen
ansible laptop05 -m ping -vvv
```
### Host-Key Warnung
Ist in ansible.cfg deaktiviert. Falls es trotzdem auftritt:
```bash
ssh-keygen -R 192.168.1.105
```
## Tipps
1. **Bandbreite sparen:** Updates nachts oder gestaffelt ausfuehren
2. **Grosse Aenderungen:** Besser per Clonezilla-Image
3. **Kleine Aenderungen:** Ansible (schneller, kein Neustart)
4. **Testen:** Erst mit `--limit laptop05` auf einem Rechner testen