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>
145 lines
3.1 KiB
Markdown
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
|