{"id":217,"date":"2021-05-22T12:20:24","date_gmt":"2021-05-22T10:20:24","guid":{"rendered":"https:\/\/www.iot-embedded.de\/iot-2021\/?p=217"},"modified":"2021-05-22T12:25:16","modified_gmt":"2021-05-22T10:25:16","slug":"ba-ba-balena","status":"publish","type":"post","link":"https:\/\/www.iot-embedded.de\/iot-2021\/smart-security\/ba-ba-balena\/","title":{"rendered":"Ba-Ba Balena!"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote\"><p><strong>* fleet owner<\/strong>&nbsp;(n.): the person responsible for building and managing groups of connected IoT (Internet of Things) devices.<\/p><cite>https:\/\/www.balena.io<\/cite><\/blockquote>\n\n\n\n<p>Stolz wie Oskar bezeichnen sich die Mitarbeiter des Start-ups <em>Smart Security<\/em> nun als &#8222;Fleet Owners&#8220;. Warum? Der Grundbaustein f\u00fcr die Verteilung (das Deployment) unserer Sicherheitssoftware in verschiedene Einrichtungen ist gelegt.<\/p>\n\n\n\n<p>Das Toolset von balena erlaubt uns, mit unseren IoT-Ger\u00e4ten (Raspberry-Pis) eine Platform-as-a-Service-\u00e4hnliche Cloud-Infrastruktur aufzubauen. Dies erleichtert das Ausliefern von Softwareupdates und stellt eine gute M\u00f6glichkeit dar, die Systeme zu \u00fcberwachen.<\/p>\n\n\n\n<p>Nachdem wir also balenaOS auf unseren IoT-Ger\u00e4ten installiert haben, m\u00fcssen wir nur noch unseren Anwendungscode entwickeln, welcher in containerisierte Services gepackt wird.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">balenaOS-Image konfigurieren und herunterladen<\/h2>\n\n\n\n<p>Zun\u00e4chst erstellen wir einen Account bei balena. Daraufhin wird uns direkt vorgeschlagen, eine App zu erstellen, womit wir auch fortfahren. Wir geben hierbei an, dass wir als IoT-Ger\u00e4t einen Raspberry-Pi 4 nutzen m\u00f6chten.<\/p>\n\n\n\n<p>Nachdem wir die App erstellt haben, m\u00f6chten wir direkt den ersten Raspi einbinden. Um ein balenaOS-Image f\u00fcr diesen zu erstellen, w\u00e4hlen wir aus, dass wir ein neues Ger\u00e4t hinzuf\u00fcgen m\u00f6chten. Um sp\u00e4ter bei der Entwicklung unserer Anwendung Live-Pushes nutzen zu k\u00f6nnen, w\u00e4hlen wir &#8222;Development&#8220; aus. Wer seinen Raspi nicht per Ethernet anbinden kann oder m\u00f6chte, sollte hier direkt seine WLAN-Zugangsdaten (SSID + Passwort) angeben. Anschlie\u00dfend laden wir das balenaOS-Image herunter.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">balenaOS-Image auf die microSD flashen<\/h2>\n\n\n\n<p>Um das Betriebssystem balenaOS auf den Raspi zu bekommen, flashen wir das Image auf die microSD-Karte des Pis. Auch hierzu stellt uns balena ein Tool zur Verf\u00fcgung: <em>balenaEtcher.<\/em><\/p>\n\n\n\n<p>Dieses Tool ist sehr simpel gestaltet. Im ersten Schritt w\u00e4hlt man das soeben heruntergeladene Image aus. Anschlie\u00dfend wird die microSD-Karte angegeben, auf die geflashed werden soll, woraufhin der Vorgang mit einem Klick auf &#8222;Flash!&#8220; durchf\u00fchrbar ist.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-21-1024x646.png\" alt=\"Etcher \nbalenaEtcher \nbalena-cl....5.10.img \nGeneric S. ..SB Device \nRemove \nFlash! \" class=\"wp-image-219\" width=\"629\" height=\"397\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-21-1024x646.png 1024w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-21-300x189.png 300w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-21-768x484.png 768w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-21.png 1204w\" sizes=\"(max-width: 629px) 100vw, 629px\" \/><figcaption>balenaEtcher<\/figcaption><\/figure>\n\n\n\n<p>Das Tool l\u00e4sst uns wissen, ob der Vorgang erfolgreich abgeschlossen wurde:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-22.png\" alt=\"balena-clot\u2022 \nFlash Complete! \n1 Successful target \nFlash another \" class=\"wp-image-220\" width=\"204\" height=\"289\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-22.png 382w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-22-211x300.png 211w\" sizes=\"(max-width: 204px) 100vw, 204px\" \/><figcaption>Flash erfolgreich abgeschlossen<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">balenaOS auf dem Raspberry Pi starten<\/h2>\n\n\n\n<p>Um balenaOS nun auf dem Pi zu starten, m\u00fcssen wir lediglich die microSD-Karte in den Pi stecken und diesen anschlie\u00dfend mit Strom versorgen. Der Pi startet nun mit balenaOS.<\/p>\n\n\n\n<p>Nach ca. einer Minute taucht er auch schon auf unserem balena-Cloud Online-Dashboard auf.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Letzte Konfigurationen durchf\u00fchren<\/h2>\n\n\n\n<p>Wie bereits erw\u00e4hnt, m\u00f6chten wir f\u00fcr die schnellere Entwicklung gerne die M\u00f6glichkeit der Live-Pushes nutzen. Hierzu w\u00e4hlen wir im Dropdown-Men\u00fc des Raspberry Pis aus, dass wir den <em>local mode<\/em> aktivieren m\u00f6chten:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-23-1024x619.png\" alt=\"floral-darkness \nSTATUS \nOnline \nLAST SEEN NPN) \nOnline (for 3 minutes) \nCURRENT RELEASE \nLOCAL IP ADDRESS \n192. 16B .2.2e2 \nTAGS (O) \nNo tags configured yet \nAdd device notes... \nReboot \nUUID \na24a655 \nHOST OS WRSION \nbalenaos 2.75.O+rev1 \ndevelopment \nTARGET RELEASE \n&amp;ory \nPUBLIC IP ADDRESS \n77 . . 157 . 72 \n64 \nSUPE \n12. \nMAC \nRestart \nMove device \nPin to release \nEnable Lock override \nUpdate balenaOS \nUpdate supervisor \nEnable local mode \nGrant support access \nManage tags \nChange device type \nPurge data \nShutdown \nDelete device \nMemory \nLogs \nAdd filter \n20.05.21 \n14:25. \nAL MODE&quot; 1&quot;} \n20.05.21 \n14:25- \nL MODE&quot; } \n20.05. 21 \n14:25. \nTerminal \n-36% \n235 MB\/3.8 GB \nUTC \nQ \nSearch entries... \nTemperature \nStorage \nTimestamps \n79 MB\/5t.4 GB \nC Views v \n(+0200) Applying configuration change {&quot;SUPERVISOR _ LOC \n(+0200) Applied configuration change {&quot;SUPERVISOR_LOCA \n(+0200) Creating network 'default' \nSelect a target v \" class=\"wp-image-221\" width=\"652\" height=\"394\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-23-1024x619.png 1024w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-23-300x181.png 300w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-23-768x464.png 768w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-23-1536x928.png 1536w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-23.png 1883w\" sizes=\"(max-width: 652px) 100vw, 652px\" \/><figcaption>balena Dashboard, aktivieren des local mode<\/figcaption><\/figure>\n\n\n\n<p>Um Konsolenbefehle von balena nutzen zu k\u00f6nnen, haben wir weiterhin die balena CLI installiert, welche unter anderem folgende Befehle unterst\u00fctzt:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-25-1024x528.png\" alt=\"Ausgabe des Befehls &quot;balena&quot;\" class=\"wp-image-224\" width=\"692\" height=\"357\" srcset=\"https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-25-1024x528.png 1024w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-25-300x155.png 300w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-25-768x396.png 768w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-25-1536x792.png 1536w, https:\/\/www.iot-embedded.de\/iot-2021\/wp-content\/uploads\/sites\/5\/2021\/05\/image-25.png 1729w\" sizes=\"(max-width: 692px) 100vw, 692px\" \/><figcaption>Auflistung der wichtigsten balena Befehle<\/figcaption><\/figure>\n\n\n\n<p>Um Zugriff auf die Ger\u00e4te unserer balena-Cloud zu haben, beginnen wir mit dem Befehl<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>balena login<\/code><\/pre>\n\n\n\n<p>und\u00a0 loggen uns dann mittels Weblogin ein.<\/p>\n\n\n\n<p>Im n\u00e4chsten Schritt k\u00f6nnen wir nun eine (Docker-)Anwendung auf einen Raspi deployen mit dem Befehl<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>balena push &lt;Raspi-ID&gt;<\/code><\/pre>\n\n\n\n<p>Von daher: Viel Spa\u00df und bis zum n\u00e4chsten Mal!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>* fleet owner&nbsp;(n.): the person responsible for building and managing groups of connected IoT (Internet of Things) devices. https:\/\/www.balena.io Stolz wie Oskar bezeichnen sich die Mitarbeiter des Start-ups Smart Security nun als &#8222;Fleet Owners&#8220;. Warum? Der Grundbaustein f\u00fcr die Verteilung<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[9],"tags":[],"_links":{"self":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts\/217"}],"collection":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/comments?post=217"}],"version-history":[{"count":4,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts\/217\/revisions"}],"predecessor-version":[{"id":227,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/posts\/217\/revisions\/227"}],"wp:attachment":[{"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/media?parent=217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/categories?post=217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2021\/wp-json\/wp\/v2\/tags?post=217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}