en / de
AI
Expertisen
Methoden
Dienstleistungen
Referenzen
Jobs & Karriere
Firma
Technologie-Trends TechCast WebCast TechBlog News Events Academy

Selbstbau-Cluster mit 6 Raspberry PI 2 Nodes

Wozu ein eigener Cluster?

Verteilte Systeme haben mich schon immer fasziniert. Die Entwicklung solcher Systeme erfordert aber einiges an Administrationsaufwand um eine entsprechende Entwicklungs- und Testinfrastruktur aufzusetzen.

Grundsätzlich gibt es zwei Möglichkeiten:

Der Cluster

Mein Cluster besteht aus 6 Raspberry PI 2 mit je 16GB microSD Speicher. Untereinander sind die Knoten über einen 100MBit Ethernet Switch verbunden, der wiederum über einen alten WLAN-Router im Bridge-Modus ins WLAN eingebunden ist, um so den Zugriff von anderen Rechnern aus und aufs Internet zu ermöglichen.

Cluster mit 6 Raspberry PI 2 Nodes

Erster Stand des 6 Node Raspberry Pi 2 Clusters

Cluster-Verwaltung

So ein Cluster mit 6 Nodes mittels SSH zu verwalten wäre eine ziemliche Fleissarbeit. Zum Glück gibt es bereits passende Tools, welche einem viel Arbeit abnehmen können. Die wohl bekanntesten Tools zur DevOp-Automatisierung sind Puppet, Chef und Ansible. Ich habe mich als erstes für Ansible entschieden, da es keine Installation auf den Nodes erfordert. Einzige Voraussetzung ist, dass auf die Nodes Zugriff via SSH ermöglichen, was sowieso schon der Fall war. Einzig auf dem Rechner, von dem man aus das Cluster verwalten will benötigt die Installation von Ansibel, die über PIP ein Einzeiler ist:

pip install ansible

Ist Ansible erst mal heruntergeladen und installiert, muss man ein Host-File erstellen, das sogenannte Inventory-File. Da ich unter Mac OS X dafür nicht /etc/ansible/hosts verwenden wollte, habe ich in einem Unterordner ein eigenes hosts-File erstellt.

[cluster:vars]
ansible_ssh_user=pi
ansible_ssh_pass=raspberry

[cluster]
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
192.168.1.15
192.168.1.16

Um nun alle Nodes im Cluster zu pingen, kann folgender Befehl verwendet werden, unter der Voraussetzung, dass man sich auf dem Terminal im Verzeichnis des hosts-File befindet (Option -i . für Inventory-Verzeichnis = .):

ansible all -m ping -i .

Ping des Clusters via Ansible

Ansible funktioniert via SSH. Daher ist ein ping hier durch das Ansible ping-Modul (-m ping) realisiert, das einfach ein SSH-Login auf jedem Node durchführt und so die Verbindung prüft.

Eben so hilfreich ist es das Cluster mit einem solchen Befehl herunterzufahren:

ansible all -m command -a 'sudo /sbin/shutdown -h now' -i .

Shutdown des Clusters via Ansible

Ausblick

Da mein Cluster nun funktioniert, plane ich in näherer Zukunft einige Test mit verteilten Applikationen:


Dieser Post basiert auf einem privaten Projekt des Autors.
Der original Post ist auf www.bitweber.ch zu finden.

Kommentare

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Newsletter - aktuelle Angebote, exklusive Tipps und spannende Neuigkeiten

 Jetzt anmelden

Copyright © 2025 Noser Engineering AG – Alle Rechte vorbehalten.

NACH OBEN
Privacy Policy Cookie Policy
Zur Webcast Übersicht