RevPi Core 3 mit balenaCloud und Python in Betrieb nehmen
In dieser Anleitung helfen wir Dir, balenaCloud wie folgt zu nutzen:
- Dein Revolution Pi Core 3-Gerät einzurichten und es im balenaCloud-Dashboard online zu bringen.
- Ein Python-Hello-World-Projekt auf dem Gerät bereitzustellen.
- Das Beispielprojekt weiterzuentwickeln: Änderungen vorzunehmen und sie in Echtzeit auf dem Gerät zu testen.
Nach Abschluss dieses Leitfadens wirst Du mit den Grundlagen von balena vertraut sein, um Deine Anwendung weiterzuentwickeln und Flotten von Geräten in Produktion zu bringen. Wenn Du bestimmte Begriffe nachschlagen möchtest, findest Du diese im Glossar.
Hardware
- RevPi Core 3
- Ein Micro-USB-Kabel, um das eMMC des Geräts zu flashen.
- Ein Stromkabel mit 10,7 bis 28,2 V.
- [Optional] Ein Ethernet-Kabel.
- Ein balena-Konto.
Software
-
Node-RED
- Wenn Du das vollständige Image verwendest, ist Node-RED bereits vorinstalliert.
- Bei der Lite-Version ist Node-RED nicht vorinstalliert. Du kannst Node-RED gemäß den Anweisungen unter folgendem Link installieren: Node-RED auf Raspberry Pi ausführen.
-
Ein moderner Webbrowser (z. B. Google Chrome oder Mozilla Firefox).
Schritt 1: Eine Flotte erstellen
Eine Flotte ist eine Gruppe von Geräten, die dieselbe Architektur nutzen und denselben Code ausführen. Geräte können einer Flotte hinzugefügt und jederzeit zwischen Flotten verschoben werden.
Um Deine erste Flotte zu erstellen:
▷ Melde Dich beim balenaCloud-Dashboard an und klicke auf die Schaltfläche Create fleet.
.
▷ Gib einen Flottennamen ein, wähle den Gerätetyp Revolution Pi Core 3, die Flottenart Starter aus, und klicke auf Create new fleet:
.
Du wirst dann zur Zusammenfassung der neu erstellten Flotte weitergeleitet, wo Du Deinen ersten Revolution Pi Core 3 hinzufügen kannst.
Du wirst dann zur Zusammenfassung der neu erstellten Flotte weitergeleitet, wo Du Deinen ersten Revolution Pi Core 3 hinzufügen kannst.
Schritt 2: Gerät hinzufügen und Betriebssystem herunterladen
balenaCloud erstellt ein benutzerdefiniertes balenaOS-Image, das für den Revolution Pi Core 3 konfiguriert ist und es dem Gerät ermöglicht, sich automatisch in die von Dir erstellte Flotte einzufügen. Beginne, indem Du in der Flottenübersicht auf Add device klickst. Dein Gerätetyp wird hier bereits vorausgewählt sein, da Du ihn beim Erstellen der Flotte ausgewählt hast. Andere Gerätetypen mit derselben Architektur können ebenfalls der Flotte hinzugefügt werden.
▷ Wähle einen Betriebssystemtyp balenaOS, und es wird eine Liste der verfügbaren balenaOS-Versionen angezeigt, wobei die neueste Version vorausgewählt ist.
▷ Wähle eine Development-Version des Betriebssystems. Das Produktionsbetriebssystem unterstützt den Entwicklungsworkflow, den wir verwenden werden, nicht. Erfahre mehr über die Unterschiede zwischen Entwicklungs- und Produktions-Images.
▷ Wähle die Art der Netzwerkverbindung, die Du verwenden möchtest: Nur Ethernet oder Wifi + Ethernet. Eine Netzwerkverbindung ist erforderlich, damit sich das Gerät mit balenaCloud verbinden kann. Wenn Du Wifi + Ethernet auswählst, kannst Du eine WLAN-SSID und ein WLAN-Passwort eingeben, die dann in das Image integriert werden.
▷ Klicke abschließend auf die Schaltfläche Download balenaOS. Nach Abschluss des Downloads solltest Du eine gezippte Image-Datei mit einem Namen wie balena-First-Fleet-revpi-core-3-2.80.3+rev1-v12.7.0.img.zip
haben.
Schritt 3: Gerät provisionieren
Als Nächstes flashen wir das heruntergeladene Image auf das Gerät. Befolge dazu die folgenden Schritte:
- Verbinde Dein System mit dem USB-Anschluss der Revolution Pi Core 3-Platine über ein Micro-USB-Kabel, während die Platine nicht mit Strom versorgt wird. Schalte anschließend die Revolution Pi Core 3 ein.
- Schreibe die heruntergeladene balenaOS-Datei auf die Revolution Pi Core 3. Wir empfehlen die Verwendung von Etcher.
- Warte, bis das Schreiben von balenaOS abgeschlossen ist.
- Schalte die Revolution Pi Core 3 aus und ziehe das Micro-USB-Kabel ab.
- Entferne die Stromversorgung der Revolution Pi Core 3 und schließe sie erneut an, um das Gerät zu starten.
Nach ein oder zwei Minuten sollte das Gerät auf Deinem balenaCloud-Dashboard erscheinen, und Du bist nun bereit, Code bereitzustellen. Falls das Gerät nicht auf dem Dashboard erscheint, sieh Dir unseren Fehlerbehebungsleitfaden für Revolution Pi Core 3 oder unsere Support-Kanäle an.
Schritt 4: balena CLI installieren
Da ein Gerät in Deiner Flotte online ist, ist es Zeit, Code bereitzustellen. Dafür verwenden wir die balena CLI. Befolge die Anweisungen unten, um die balena CLI für Dein Betriebssystem zu installieren. Überspringe diesen Teil, wenn Du die balena CLI bereits installiert hast.
- Lade das CLI-Installationsprogramm herunter.
- Doppelklicke auf die heruntergeladene Datei, um das Installationsprogramm auszuführen, und folge den Anweisungen des Installers.
- Öffne zur Ausführung von balena CLI-Befehlen ein Terminal: Klicke auf das Windows-Startmenü, gib PowerShell ein und wähle Windows PowerShell aus.
Nach der Installation der balena CLI melde Dich bei Deinem balena-Konto mit dem Befehl balena login
im Terminal an:
$ balena login
_ _
| |__ __ _ | | ____ _ __ __ _
| '_ \ / _` || | / __ \| '_ \ / _` |
| |_) | (_) || || ___/| | | || (_) |
|_.__/ \__,_||_| \____/|_| |_| \__,_|
Logging in to cloud.com
? How would you like to login? (Use arrow keys)
❯ Web authorization (recommended)
Credentials
Authentication token
I don't have a balena account!
Du wirst aufgefordert, eine Authentifizierungsmethode auszuwählen. Wähle "Web-Authentifizierung", was ein Webbrowser-Fenster öffnet, in dem Du Dich in Deinem balenaCloud-Konto anmelden kannst. Klicke auf den Button "Autorisieren" und kehre nach der erfolgreichen Anmeldung zum Terminal zurück.
Schritt 5: Erstelle eine Veröffentlichung
Nach der Anmeldung teste die balena CLI, indem Du den Befehl balena fleets
ausführst. Dieser sollte Informationen zu der Flotte zurückgeben, die Du im vorherigen Schritt erstellt hast. Notiere Dir den FLEET NAME, da Du diesen im nächsten Schritt benötigst, um den Code auf Dein(e) Gerät(e) in dieser Flotte zu pushen.
$ balena fleets
ID FLEET NAME DEVICE TYPE ONLINE DEVICES DEVICE COUNT
98264 First-Fleet Revolution Pi Core 3 0 0
Ein interessantes Projekt, das Du ausprobieren kannst, ist das Projekt balena-python-hello-world
. Es handelt sich um einen Python-Webserver, der eine statische Seite auf Port 80 bereitstellt. Lade das Projekt von GitHub als ZIP-Datei herunter, entpacke es und öffne ein Terminal im Wurzelverzeichnis des extrahierten Projektordners.
Um eine Veröffentlichung zu erstellen, verwende den Befehl balena push First-Fleet
, wobei Du First-Fleet
mit dem Namen Deiner Flotte ersetzt. Stelle sicher, dass Du im Wurzelverzeichnis des entpackten Projektordners arbeitest.
$ balena push First-Fleet
Dieser Befehl pusht den Code zu den balena-Bau-Servern, wo er kompiliert, gebaut, in eine Veröffentlichung umgewandelt und auf jedes Gerät in der Flotte angewendet wird.
Du wirst wissen, dass Dein Code erfolgreich kompiliert und gebaut wurde, wenn unser freundliches Einhorn-Maskottchen im Terminal erscheint:
[hello-world] Successfully built 51bd190f7530
[Info] Generating image deltas from release 8acfdc579f7cb0fe424d1b800588b6f5 (id: 2186018)
[Success] Successfully generated image deltas
[Info] Uploading images
[Success] Successfully uploaded images
[Info] Built on builder05
[Success] Release successfully created!
[Info] Release: c0c593803588a304c173124827d96b99 (id: 2186339)
[Info] ┌────────────────────┬────────────┬────────────┐
[Info] │ Service │ Image Size │ Build Time │
[Info] ├────────────────────┼────────────┼────────────┤
[Info] │ hello-world │ 190.04 MB │ 50 seconds │
[Info] └────────────────────┴────────────┴────────────┘
[Info] Build finished in 1 minutes, 4 seconds
\
\
\\
\\
>\/7
_.-(6' \
(=___._/` \
) \ |
/ / |
/ > /
j < _\
_.-' : ``.
\ r=._\ `.
<`\\_ \ .`-.
\ r-7 `-. ._ ' . `\
\`, `-.`7 7) )
\/ \| \' / `-._
|| .'
\\ (
>\ >
,.-' >.'
<.'_.''
<'
Die Veröffentlichung wird dann heruntergeladen und auf allen Geräten der Flotte gestartet. Du kannst den Fortschritt der Geräte-Code-Updates auf dem Dashboard des Geräts sehen:
Nach dem Download solltest Du nun einen Python-Webserver auf Deinem Gerät laufen haben und einige Logs auf Deinem Dashboard sehen.
Um Deinem Gerät eine öffentliche URL zu geben, klicke auf den Schalter "Public Device URL" im Dashboard des Geräts. Öffentliche Geräte-URLs ermöglichen es Dir, Inhalte vom Gerät aus der Welt einfach bereitzustellen, solange der Server auf Port 80 läuft.
Folge der URL, um die Willkommensseite mit weiteren Ressourcen anzusehen. Alternativ kannst Du den Browser auf die lokale IP-Adresse Deines Geräts richten, um den Server auf Deinem Gerät zu erreichen. Die IP-Adresse des Geräts findest Du auf der Geräte-Dashboard-Seite. Das solltest Du sehen:
Schritt 4: Entwickeln Deines Projekts
Jetzt probieren wir, einige Änderungen an diesem Projekt vorzunehmen und sie direkt auf dem Gerät zu testen. Das Projekt kann geändert und erneut gepusht werden, indem dieselbe Methode wie oben verwendet wird, aber da wir eine Entwicklungs-Version des Betriebssystems verwenden, können wir den lokalen Modus aktivieren und direkt auf das Gerät pushen, was einen schnelleren Entwicklungszyklus ermöglicht.
Aktiviere den lokalen Modus auf dem Gerät über das Dashboard.
Sobald dieser aktiviert ist, kannst Du jetzt balena push
erneut verwenden, aber diesmal pushen wir direkt zur lokalen IP-Adresse des Geräts, die über das Dashboard erhalten wurde.
Lokale IP-Adresse
$ balena push 10.19.0.153
Der gleiche Build-Prozess wie zuvor wird durchgeführt, aber diesmal findet der Build lokal auf dem Gerät selbst statt, anstatt die balena-Bau-Server zu verwenden.
[Info] Streaming device logs...
[Live] Watching for file changes...
[Live] Waiting for device state to settle...
[Logs] [8/26/2021, 11:58:18 AM] Creating network 'default'
[Logs] [8/26/2021, 11:58:19 AM] Installing service 'hello-world sha256:...'
[Logs] [8/26/2021, 11:58:20 AM] Installed service 'hello-world sha256:...'
[Logs] [8/26/2021, 11:58:20 AM] Starting service 'hello-world sha256:...'
[Logs] [8/26/2021, 11:58:23 AM] Started service 'hello-world sha256:...'
[Logs] [8/26/2021, 11:58:24 AM] [hello-world] Starting server on port 80
[Live] Device state settled
Die balena CLI überwacht nun Änderungen an allen Dateien im Projekt und pusht automatisch Änderungen auf das Gerät, wenn diese erkannt werden. Lass uns versuchen, den Titel der balena-Willkommensseite zu ändern. Navigiere zur Datei index.html
im Verzeichnis static
des Projekts. Öffne die Datei und ändere den Titel von "Welcome to balena!" auf "Hello balena!" und speichere die Datei. Nach dem Speichern der Änderungen kannst Du beobachten, wie die balena CLI automatisch nur die Teile des Dockerfiles neu baut, die geändert wurden.
[Live] Detected changes for container hello-world, updating...
...
[Live] [hello-world] Restarting service...
[Logs] [8/26/2021, 11:59:01 AM, 2:42:32 AM] Service exited 'hello-world sha256:...'
[Logs] [8/26/2021, 11:59:04 AM, 2:42:35 AM] Restarting service 'hello-world sha256:...'
[Logs] [8/26/2021, 11:59:05 AM, 2:42:36 AM] [hello-world] Starting server on port 80
Wenn der Rebuild abgeschlossen ist, schaue erneut auf die öffentliche Geräte-URL, um Deine Änderungen zu sehen. Die Willkommensseite sollte nun mit dem neuen Titel aktualisiert worden sein.
Nächste Schritte
Sobald Du mit Deinen Änderungen fertig bist, deaktiviere den lokalen Modus und das Gerät wird wieder auf die neueste Veröffentlichung in Deiner Flotte zurückgesetzt. Um Deine Flotte mit den neuesten Änderungen zu aktualisieren, die Du gerade gemacht hast, verwende noch einmal den Befehl balena push "fleet name"
, um eine neue Veröffentlichung mit diesen Änderungen zu erstellen.
Wenn der Build abgeschlossen ist, werden die Geräte wie zuvor aktualisiert. Denk daran, dass alles, was auf diese Weise in die Flotte gepusht wird, auf 10+ oder 1000+ Geräte ohne zusätzlichen Aufwand angewendet werden kann! Um weiter zu lernen, kannst Du Teile des Handbuchs detaillierter erkunden:
-
Lerne mehr über lokalen Modus, der es Dir ermöglicht, Code lokal auf Deinem Gerät zu bauen und zu synchronisieren, um eine schnelle Entwicklung zu ermöglichen.
-
Entwickle eine Anwendung mit mehreren Containern, um eine modulare Herangehensweise an das Flottenmanagement zu ermöglichen.
-
Verwalte Deine Geräteflotte mit der Verwendung von Konfiguration, Umgebungsvariablen und Service-Variablen.
-
Erfahre mehr über die balena CLI und die Funktionen, die sie bietet.
-
Besuche unseren Blog, um Schritt-für-Schritt-Tutorials zu einigen klassischen balena-Projekten zu finden.
-
Um das, was Du bauen wirst oder bereits gebaut hast, zu veröffentlichen, gehe zu balenaHub.
-
Wenn Du feststeckst oder verwirrt bist, ist Hilfe nur einen Klick entfernt.