Startseite>Raspberry-Pi-Farm mit Ansible automatisieren
Aus Raspberry Pi Geek 04/2018

Raspberry-Pi-Farm mit Ansible automatisieren

© Ivan Smuk, 123RF

Auf (m)ein Kommando

Martin Mohr

Geht es darum, mehrere Rechner mit einer zentralen Instanz parallel zu orchestrieren, leistet Ansible ganze Arbeit.

Das Framework Ansible [1] dient zum Orchestrieren von Services, der Artikel führt seinen Einsatz am Beispiel der Automation von Verwaltungsaufgaben auf Servern vor. Um die zu erledigenden Aufgaben zu beschreiben, verwendet das Tool die unter der GPL stehende Sprache YAML, eine vereinfachte, an XML angelehnte Sprache.

Um die Funktionsweise von Ansible zu demonstrieren, erledigen wir im Folgenden Verwaltungsaufgaben auf drei RasPis (Abbildung 1) vom PC aus. Auf jedem der drei Mini-Rechner installieren wir Raspbian “Jessie” Lite [2]. Nach dem Herunterladen des Images (Sie finden es auch auf der Heft-DVD) entpacken wir es und schreiben es auf die drei SD-Karten (Listing 1).

Abbildung 1: Ein gemeinsames Netzteil versorgt die drei zu einer Farm zusammengefassten Mini-Rechner mit Energie.

Abbildung 1: Ein gemeinsames Netzteil versorgt die drei zu einer Farm zusammengefassten Mini-Rechner mit Energie.

Listing 1

 

$ wget https://downloads.raspberrypi.org/raspbian_lite_latest
$ unzip ./raspbian_lite_latest
$ sudo dd if=./2017-04-10-raspbian-jessie-lite.img of=/dev/sdd

Um den Überblick zu behalten, bekommt jeder der drei RasPis einen eindeutigen Namen und eine feste IP-Adresse im lokalen Netzwerk. Die Tabelle “Beispielkonfiguration” zeigt das von uns verwendete Setup der Namen und Adressen. Der Kasten “Feste IP-Adresse zuweisen” zeigt, wie Sie einem Raspberry Pi eine feste IP-Adresse zuweisen.

Beispielkonfiguration

Name

IP-Adresse

pi1

192.168.3.71

pi2

192.168.3.72

pi3

192.168.3.73

Feste IP-Adresse zuweisen

Damit andere Rechner die auf einem Server laufenden Dienste dauerhaft erreichen, benötigt er zwingend eine feste IP-Adresse. Die IP-Konfiguration für den Raspberry Pi finden Sie in der Datei /etc/network/interfaces. Die Datei lässt sich nur als Root bearbeiten, weil sie für den Betrieb des Systems wichtige Einstellungen enthält. Sie öffnen sie entsprechend mit dem Aufruf sudo nano /etc/network/interfaces im Texteditor. Die notwendigen Änderungen entnehmen Sie Listing 2. Achten Sie darauf, für das lokale Netzwerk passende IP-Adressen zu wählen. Um die Konfiguration zu testen, starten Sie nach dem Sichern der Änderungen den RasPi neu und tippen im Terminal ip address.

Listing 2

 

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.3.71
netmask 255.255.255.0
gateway 192.168.3.1
dns-nameservers 192.168.3.1

Da Ansible alle Kommandos via SSH absetzt, kommt es ohne zusätzliche Client-Installation auf den zu verwaltenden Rechnern aus. Für die Authentifizierung verwendet Ansible dabei das Public-Key-Verfahren. Dabei geht es von identischen Benutzerkonten auf dem Verwaltungsrechner und den Clients aus. Der entsprechende Nutzer muss die Berechtigung besitzen, sich auf den Clients per Key einzuloggen.

Im ersten Schritt gilt es also, auf allen Rechnern einen speziellen User für Ansible anzulegen. Um den Aufwand erst einmal niedrig zu halten, verwenden wir den auf den Clients bereits vorhandenen User pi. Daher müssen wir auf dem als Verwaltungsrechner dienenden Linux-Desktop ebenfalls einen User pi mit einem zugehörigen SSH-Schlüsselpaar anlegen.

Sie richten das entsprechende Konto mit dem Befehl sudo adduser pi ein (Listing 3). Dann wechseln Sie in das entsprechende Konto, was beispielsweise unter Ubuntu recht einfach über das Menü gelingt (Abbildung 2). Nach dem Anmelden generieren Sie das Schlüsselpaar, das Sie später zum Login auf den RasPis verwenden.

Abbildung 2: Ubuntu erlaubt das bequeme Wechseln des angemeldeten Nutzers über den System-Tray.

Abbildung 2: Ubuntu erlaubt das bequeme Wechseln des angemeldeten Nutzers über den System-Tray.

Listing 3

 

$ sudo adduser pi
Lege Benutzer »pi« an ...
Lege neue Gruppe »pi« (1001) an ...
Lege neuen Benutzer »pi« (1001) mit Gruppe »pi« an ...
Erstelle Home-Verzeichnis »/home/pi« ...
Kopiere Dateien aus »/etc/skel« ...
Geben Sie ein neues UNIX-Passwort ein:
Geben Sie das neue UNIX-Passwort erneut ein:
passwd: Passwort erfolgreich geändert
Benutzerinformationen für pi werden geändert.
Geben Sie einen neuen Wert an oder drücken Sie ENTER für den Standardwert
        Vollständiger Name []:
        Zimmernummer []:
        Telefon geschäftlich []:
        Telefon privat []:
        Sonstiges []:
Sind diese Informationen korrekt? [J/n] j

Das System fragt beim Erzeugen der Schlüssel nach einer Passphrase, die den privaten Schlüssel vor unberechtigter Nutzung schützt. Da das Schlüsselpaar aber zum automatischen Login dient, beantworten Sie die Frage nach der Passphrase mit [Eingabe]. Das bewirkt, dass sich das Schlüsselpaar später ohne zusätzliche manuelle Eingabe der Passphrase verwenden lässt. Listing 4 zeigt, wie Sie den Schlüssel erzeugen. Das Tool legt die generierten Schlüssel automatisch im richtigen Verzeichnis an.

Listing 4

 

$ ssh-keygen -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Created directory '/home/pi/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
The key fingerprint is:
38:19:8a:14:1f:49:fe:d5:69:e9:0f:de:87:9e:eb:61 [email protected]
The key's randomart image is:
+--[ RSA 4096]----+
|  ..o.           |
|   +..   . o     |
|  . o . . =      |
| . . o = o       |
|  . . = S o      |
|       . . + .   |
|          . E .  |
|           o +   |
|           .=.   |
+-----------------+

Nun kopieren Sie den Public Key für den User pi per Scp auf die drei Mini-Rechner (Listing 5). Beim Kopieren erscheint eine Passwortabfrage der Zielrechner. Damit sind nun alle Vorbereitungen abgeschlossen, als nächsten Schritt installieren Sie Ansible auf dem Desktop-PC.

Listing 5

 

$ scp /home/pi/.ssh/id_rsa.pub 192.168.3.71:/home/pi/.ssh/authorized_keys
$ scp /home/pi/.ssh/id_rsa.pub 192.168.3.72:/home/pi/.ssh/authorized_keys
$ scp /home/pi/.ssh/id_rsa.pub 192.168.3.73:/home/pi/.ssh/authorized_keys
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland