Hallo Welt!
Da ich selbst lange nach einem Tutorial gesucht habe, wie man Ansible auf und für Raspberry Pis aufsetzt und ich nichts gefunden habe, hier ein kurzes und knackiges Tutorial. Getestet und funktionsfähig mit Raspbian. Einfach die kursiv gesetzen Befehle kopieren und einfügen. Wofür ist Ansible fragt ihr euch? Ansible ist ein Programm mit dem ihr beliebig viele Linux-Geräte GLEICHZEITIG ansteuern könnt. Ich habe z.B. 7 RasPis und keine Lust und Zeit jeden einzelnen zu updaten etc. Mit Ansible kann ich jedoch Befehle an alle Pis gleichzeitig schicken. So spar ich es mir jeden Pi einzeln updaten zu müssen. Hier aber nun die Anleitung. Copy & Paste ready!
1)System updaten. Vor allem wenn ihr ein ganz frisches System benutzt!
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo rpi-update
2)Ansible installieren
sudo apt-get install -y ansible
3)Originale Known-Hosts Datei verschieben/umbennen. Wir machen uns eine neue, cleane Datei.
sudo mv /etc/ansible/hosts /etc/ansible/hosts.orig
4)Neue Known-Hosts Datei anlegen und Hosts-Datei öffnen
sudo nano /etc/ansible/hosts
5)Hosts hinzufügen. IP-Adressen eurer zu kontrollierenden Pis einfügen, nicht meine Beispiel-Adressen nutzen. Ihr findet die IPs eurer Pis im Interface eures Routers. Die Namen in [] sind lediglich für euch als Übersicht. Ihr könnt die nennen wie ihr wollt.
[Pi01]
192.168.178.XX
[Pi02]
192.168.178.XX
USW.
- Die Einträge abspeichern und den Editor Verlassen. Einfach auf eurer Tastatur folgendes drücken:
STRG+O
ENTER
STRG+x
7)Jetzt erstellen wir ein SSH Key, den wir an die Pis die wir kontrollieren wollen schicken. Das erlaubt es uns Befehle an die Pis zu senden ohne ständig das Passwort eingeben zu müssen:
ssh-keygen
8)SSH Key an ALLE zu kontrollierenden Pis schicken:
ssh-copy-id 192.168.178.XX
ssh-copy-id 192.168.178.XX
USW.
9)Fertig! Jetzt nur noch ein Ping-Test:
ansible all -m ping
Wenn ihr jetzt von jedem Pi eine Antwort bekommt und grüne Schrift über euren Bildschirm flackert habt ihr alles richtig gemacht. Herzlichen Glückwunsch!
Hier ein Beispielbefehl zum Updaten aller Pis:
ansible all -s -m shell -a 'apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y'
Alles was in den '' geschrieben wird, wird so als Befehl an die Pis geschickt. Wenn ihr also
ansible all -s -m shell -a 'sudo rpi-update'
abschickt, dann updated jeder Pi die Firmware. Wenn ihr zum Beispiel
ansible all -s -m shell -a 'sudo reboot'
eingebt, dann starten alle eure Pis neu. Nicht vergessen. Alles was in '' geschrieben ist wird ausgeführt!
Im Groben funktioniert diese Anleitung auch für alle Linux Debian Versionen und nicht nur Raspbian. Ich übernehme da aber weder Haftung noch Gewähr. :D
Ich hoffe das Tutorial hilft dem ein oder anderen Nerd!