# 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