Mein neues Hobby sind Raspberry Pis. Inzwischen habe ich acht Stück und eien Banana Pi. Aus vier Pis möchte und dem Banana Pi als Router möchte ich eien Cluster bauen. Die Pis sind schon zusammengebaut und nun stellte sich die Frage, wie vereinfache ich die Installation der SD-Karten.
me
Darüber hinaus möchte ich natürlich später wissen, welcher Pi welcher ist. Wenn ein Pi nicht mehr mag, wäre es schon zu gut zu wissen, welchen Pi ich auf die harte Tour neu starten muss.
Dazu nur kurz folgender Tipp.
Das Raspbian Image lässt sich unter Linux mit dem Loop-Device mounten und dann anpassen. Dazu habe ich unter /mnt zwei Verzeichnisse rpi1 und rpi2. Mit losetup -Pf <image-file> werden die notwendigen Loop-Devices angelegt. Bei mir sind es /dev/loop1, /dev/loop1p1 und /dev/loop1p2.
Diese können nun mit mount -t auto /dev/loop1p1 /mnt/rpi1 und mount -t auto /dev/loop1p2 /mnt/rpi2 ins Filesystem eingehängt werden.
Mit touch /mnt/rpi1/ssh wird die Datei ssh in der Boot-Partition der SD-Karte angelegt, damit ssh beim ersten Boot freigegeben wird. (Die Datei wird nach dem Boot gelöscht.) Zusätzlich lege ich in /home/pi/ das Verzeichnis .ssh an und kopiere meinen öffentlichen SSH-Key nach authorized_keys. Wenn ich dies als root mache, muss ich Besitzer und Gruppe auf den pi ändern. Da der User pi die Id 1000 hat und meine auf dem Laptop ebenso, muss ich nur ein chown thomas:thomas /home/pi/.ssh/authorized_keys. Alternativ geht der erste Login mit dem Default Passwort.
In /etc/dhcpcd.conf bekommt der Pi eine feste IP-Adresse. Diese muss natürlich vor jedem Kopieren geändert werden, sonst melden sich alle Pis mit der gleichen Adresse.
# Example static IP configuration: interface eth0 static ip_address=192.168.2.40/24 # Und hier die wesentlichen Server und Router static routers=192.168.2.1 static domain_name_servers=192.168.2.3
In der Datei mnt/rpi2/etc/hostname wird Hostname auf clusterpi0 geändert. Auch dies sollte vor jedem Kopieren geändert werden. Dieser Name muss mit dem Namen in der /etc/hosts identisch sein, sonst schlägt vor jedem Befehl in der Shell die Prüfung des Hostnamen fehl.
Da ich über XDMCP auf die grafische Oberfläche der headless Pis zugreifen möchte, wird /mnt/rpi2/etc/lightdm/lightdm.conf entsprechen angepasst.
#.... [XDMCPServer] enabled=true port=177 #listen-address= #key= #hostname= #...
Dies geht (noch) ohne Passwort, also Vorsicht, wenn die Pis in offenen Netzen hängen.
Danach geht es ans Kopieren der SD-Karten.
Leider muss danach jeder Pi noch individuell konfiguriert und aktualisiert werden. Aber ein paar Schritte können übersprungen werden.
[…] Image wird wie im Artikel Raspberry Pi: Image modifizieren beschrieben im Dateisystem eingehängt. Die Größe der Swap Datei ist in der Datei […]