bd4384c36fdc6f1c25b6115d4e95bdd9e32ba835
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>
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:
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:
nano ~/ansible-schule/inventory.yml
Workflow: Image auf andere Rechner spielen
Schritt 1: Image erstellen (Clonezilla)
- Clonezilla Live USB-Stick erstellen
- Von USB booten
- "device-image" → "savedisk" waehlen
- Image auf externen Datentraeger speichern
Schritt 2: Image auf Clients aufspielen
- Von Clonezilla USB booten
- "device-image" → "restoredisk" waehlen
- Image auswaehlen, auf Festplatte spielen
Schritt 3: First-Boot Setup (auf jedem geklonten Rechner)
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:
cd ~/ansible-schule
Alle Rechner pingen
ansible-playbook playbooks/ping.yml
System-Update auf allen Clients
ansible-playbook playbooks/update.yml
Software installieren
# 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
ansible-playbook playbooks/update.yml --limit laptop05,laptop06
Alle Clients neustarten
ansible-playbook playbooks/reboot.yml
Schnelle Befehle ohne Playbook
# 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
# SSH-Key manuell kopieren
ssh-copy-id puettmann@192.168.1.105
Rechner nicht erreichbar
# Einzelnen Rechner testen
ansible laptop05 -m ping -vvv
Host-Key Warnung
Ist in ansible.cfg deaktiviert. Falls es trotzdem auftritt:
ssh-keygen -R 192.168.1.105
Tipps
- Bandbreite sparen: Updates nachts oder gestaffelt ausfuehren
- Grosse Aenderungen: Besser per Clonezilla-Image
- Kleine Aenderungen: Ansible (schneller, kein Neustart)
- Testen: Erst mit
--limit laptop05auf einem Rechner testen
Description
Languages
Shell
100%