{"id":22460,"date":"2022-02-28T10:34:47","date_gmt":"2022-02-28T09:34:47","guid":{"rendered":"https:\/\/blog.mi.hdm-stuttgart.de\/?p=22460"},"modified":"2023-06-18T17:42:40","modified_gmt":"2023-06-18T15:42:40","slug":"himbeer-tarte-und-harte-fakten-im-interview-mit-ansible-k3s-infrastructure-as-code-und-raspberry-pi","status":"publish","type":"post","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/02\/28\/himbeer-tarte-und-harte-fakten-im-interview-mit-ansible-k3s-infrastructure-as-code-und-raspberry-pi\/","title":{"rendered":"\u201cHimbeer Tarte und harte Fakten\u201d: Im Interview mit Ansible, k3s, Infrastructure as Code und Raspberry Pi"},"content":{"rendered":"\n<p class=\"has-drop-cap\"><em><strong>Why so serious? &#8211; Ein Artikel von <a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/author\/ss544\/\" title=\"Sarah Schwab\">Sarah Schwab<\/a> und <a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/author\/al138\/\" title=\"Aliena Leonhard\">Aliena Leonhard<\/a> im Rahmen der Vorlesung Systems Engineering and Management.<\/strong><\/em><\/p>\n\n\n\n<p><em><strong>Die Idee, ein fiktives Interview zu erstellen, entstammt daraus komplexe Sachverhalte unterhaltsam und verst\u00e4ndlich zu machen.<\/strong><\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized is-style-default\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/stan-slade-BM27BzBrhVM-unsplash-2-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"22475\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/02\/28\/himbeer-tarte-und-harte-fakten-im-interview-mit-ansible-k3s-infrastructure-as-code-und-raspberry-pi\/stan-slade-bm27bzbrhvm-unsplash-2\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/stan-slade-BM27BzBrhVM-unsplash-2-scaled.jpg\" data-orig-size=\"2560,1708\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"stan-slade-BM27BzBrhVM-unsplash-2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/stan-slade-BM27BzBrhVM-unsplash-2-1024x683.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/stan-slade-BM27BzBrhVM-unsplash-2-1024x683.jpg\" alt=\"Raspberry Fruit\" class=\"wp-image-22475\" width=\"765\" height=\"510\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/stan-slade-BM27BzBrhVM-unsplash-2-1024x683.jpg 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/stan-slade-BM27BzBrhVM-unsplash-2-300x200.jpg 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/stan-slade-BM27BzBrhVM-unsplash-2-768x513.jpg 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/stan-slade-BM27BzBrhVM-unsplash-2-1536x1025.jpg 1536w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/stan-slade-BM27BzBrhVM-unsplash-2-2048x1367.jpg 2048w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><\/a><\/figure>\n\n\n\n<p>Wir sind heute zu Gast in der Tech-Sendung \u201cHimbeer Tarte und harte Fakten\u201d.&nbsp; Heute geht es unter Anderem um die Themen \u201cRaspberry Pi\u201d, \u201cInfrastructure as Code\u201d und \u201cAnsible\u201d. Vier Experten haben wir zu einer Diskussionsrunde eingeladen. Herzlich Willkommen, Frau Ann Sibel, Herr Kah Dreis, Herr Archie Tex-Ture und Frau Infra Struc-Ture.&nbsp;<\/p>\n\n\n\n<!--more-->\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Meine erste Frage geht an Herrn Archie Tex-Ture. Erz\u00e4hlen Sie uns bitte mehr zu Ihrem gemeinsamen Forschungsprojekt. Was war ihr Ziel und&nbsp; wie sind sie beim Aufbau des Projektes vorgegangen?<\/h1>\n\n\n\n<p><strong>Herr Archie Tex-Ture<\/strong><\/p>\n\n\n\n<p>Guten Morgen, vielen Dank, dass ich in die Sendung eingeladen wurde und \u00fcber unser Projekt sprechen darf. Es ging um die Bereitstellung eines K3s Clusters. Auf k3s geht mein Kollege sicher sp\u00e4ter noch n\u00e4her ein. Ein Cluster w\u00fcrde ich mal versuchen zu beschreiben. Man kann es sich vorstellen wie mehrere Computer, die aneinander gesteckt werden und sich unter anderem ihre Ressourcen teilen k\u00f6nnen (Prozessor, Speicher, Grafikkarte etc.).<\/p>\n\n\n\n<p>Solch ein Cluster wollten wir auf Raspberry Pi\u2019s ausrollen. Raspberry Pi\u2019s sind kleine Mini-Computer, meistens ohne Geh\u00e4use. Sie k\u00f6nnen sich die so vorstellen, wie das innere ihres Handys &#8211; falls sie mal eines zerlegt haben. Ich gebe zu, gerade als Kind hab ich gern alte Radios auseinander geschraubt *lacht*. Ah meine Kollegin reicht mir hier auch ein Bild von so einem Raspberry Pi Computer:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/image-1565081738908544.jpg.webp\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"22462\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/02\/28\/himbeer-tarte-und-harte-fakten-im-interview-mit-ansible-k3s-infrastructure-as-code-und-raspberry-pi\/image-1565081738908544-jpg\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/image-1565081738908544.jpg.webp\" data-orig-size=\"900,604\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image-1565081738908544.jpg\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/image-1565081738908544.jpg.webp\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/image-1565081738908544.jpg.webp\" alt=\"\" class=\"wp-image-22462\" width=\"840\" height=\"563\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/image-1565081738908544.jpg.webp 900w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/image-1565081738908544.jpg-300x201.webp 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/image-1565081738908544.jpg-768x515.webp 768w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/a><figcaption><a href=\"#quellenverzeichnis\" title=\"[1]\">[1]<\/a>: Komponenten des Raspberry Pi 4B<\/figcaption><\/figure>\n\n\n\n<p>Es war unser Ziel manuelle Arbeitsabl\u00e4ufe zu automatisieren. Besonders die Kollegen Infra Struc-Ture und Ann Sibel waren uns bei der Erreichung des Ziels sehr hilfreich.<\/p>\n\n\n\n<p>Bei unserem Projekt haben wir uns unter anderem inspirieren lassen von den neuesten Buzz-W\u00f6rtern wie \u201cCloud\u201d, \u201cKubernetes\u201d, \u201cOrchestrierung\u201d und \u201cDevOps\u201d. Wissen Sie, gerade als angehende Fachexperten empfanden wir es von \u00e4u\u00dferster Wichtigkeit uns mit den neuesten Cloud-Technologien besser auszukennen. Und wir wollten mal bei den Basics anfangen.<\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\"><strong>Das klingt ja spannend. Wieso haben Sie sich dann f\u00fcr die L\u00f6sung mit den Raspberry Pi Computern entschieden?<\/strong><\/h1>\n\n\n\n<p><strong>Herr Archie Tex-Ture<\/strong><\/p>\n\n\n\n<p>Ja, gute Frage. Ich denke uns war es vor allem wichtig, eine neuere Generation &#8211; die Version 4B, um genau zu sein &#8211; von Raspberry Pi Computern zu verwenden und einfach mal zu schauen, was mit den Ger\u00e4ten m\u00f6glich ist. Wir haben einen Artikel gefunden, der aufzeigt, wie man aus den Raspberry Pi Computern ein leistungsstarkes Cluster bauen kann. Und das fanden wir einfach super interessant. Wissen Sie, es gab &#8211; oder gibt unterschiedliche Raspberry Pi\u2019s. Die \u00e4ltere Version &#8211; Version 3 zum Beispiel &#8211; hat eine 32bit Architektur und daher kommt auch das 32bit Betriebssystem \u201cRaspberry Pi OS\u201d. Das bedeutet grob gesagt einfach nur, dass die Prozessoren der Computer weniger verarbeiten k\u00f6nnen als die der Raspberry Pi Computer mit der 64bit Architektur. Bisher kam die Firma Raspberry scheinbar noch nicht ganz hinterher das Betriebssystem f\u00fcr die 64bit Architektur in einer stabilen Version zu ver\u00f6ffentlichen. Sie befindet sich noch in der Beta Version. Die neueren Raspberry Pi Computer haben somit salopp gesagt einen schnelleren Prozessor. Es macht nat\u00fcrlich Sinn auch ein Betriebssystem auf dem Pi zu haben, das auf den Prozessor ausgelegt ist. Das Standard Betriebssystem von Raspberry ist jedoch auf 32bit ausgelegt. Die 64bit Variante ist &#8211; wie schon gesagt &#8211; noch in der Beta Version. Wir wollten dennoch so viel Power wie es nur geht aus unserem Cluster rausholen, weswegen wir uns f\u00fcr die 64bit Lite version ohne grafische Benutzeroberfl\u00e4che entschieden haben. Spannend m\u00f6chte ich meinen! Denn wir wussten nicht, ob alles stabil l\u00e4uft. F\u00fcr unseren Anwendungsfall hatten wir scheinbar Gl\u00fcck. Denn wir haben so gut wie keine Probleme mit der Beta Version. Erw\u00e4hnenswert ist auch, dass wir uns aus Sparsamkeit f\u00fcr diese Version entschieden haben. Es macht n\u00e4mlich fast 25% der Prozessor-Performance aus die 64bit Version zu verwenden statt der 32bit Version. Klar kommt es dann auch noch drauf an welchen internen Speicher (RAM) und welche lese\/schreib-Geschwindigkeit die SD Karte hat, aber \u00fcberlegen Sie nur mal! 25% der Power einfach so verschenken? Wissen Sie, die meisten in unserem Team sind Schwaben. Da denken wir nicht mal ans Verschenken, wenn es niemand anderen gl\u00fccklich macht. Naja und die Ausnutzung des Speichers ist auch besser bei der Nutzung des daf\u00fcr vorgesehenen Betriebssystems.&nbsp;<\/p>\n\n\n\n<p>Au\u00dferdem, Hardware zu Hause zu haben ist schon was Feines. Wir haben Kabel verlegt, geschraubt, gesteckt und pl\u00f6tzlich lief es. Das ist ein tolles Gef\u00fchl. Mit einer Virtuellen Maschine hatte ich nie so ein Grinsen auf dem Gesicht. Das ist einfach was Anderes.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[2],[3]\">[2],[3]<\/a><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Da habe ich direkt eine Anschlussfrage: Gibt es denn keine L\u00f6sung, die weniger aufwendig gewesen w\u00e4re, als sich die Hardware zu bestellen?<\/h1>\n\n\n\n<p><strong>Herr Kah Dreis<\/strong><\/p>\n\n\n\n<p>Wenn ich diese Frage beantworten d\u00fcrfte:<strong> <\/strong>Es kommt immer ganz drauf an was Ihr Ziel ist. Wollen Sie beispielsweise nur ein Kubernetes Cluster aufsetzen, dann gibt es da viele andere M\u00f6glichkeiten wie beispielsweise \u201cKublet\u201d direkt auf Virtuellen Maschinen auf einem Host laufen zu lassen. \u201cHost\u201d &#8211; so nennt man in der Fachsprache einfach ein System &#8211; kann auch Ihr Computer zu Hause sein. Bei uns war das Ziel ja eben auch uns mit der Hardware und Netzwerk-Technik zu besch\u00e4ftigen. Wissen Sie, uns allen bis auf Infra Sctruc-Ture war da vieles neu. Zum Gl\u00fcck hatten wir sie immer wieder als Beraterin an unserer Seite.<\/p>\n\n\n\n<p>Klar k\u00f6nnten Sie jetzt sagen: Ja aber wieso buchen Sie denn nicht einfach ganz stressfrei ein paar Server oder Ressourcen von Cloud Anbietern wie Azure und wie sie alle hei\u00dfen?! An sich eine nette Frage. Aber haben wir dann wirklich etwas anschauliches \u00fcber Cloud-Computing, Cluster und Orchestrierung gelernt? Ich f\u00fcr meinen Teil kann sagen, dass ich das im wahrsten Sinne des Wortes greifbarer erfassen kann, als auf irgendwelchen Dashboards von den Cloud anbietern, wo mit einem Knopfdruck neue Ressourcen dazu gebucht werden. Ich kann mir ehrlich gesagt &#8211; erst jetzt nach dem Projekt so richtig vorstellen, was das eigentlich bedeutet eine \u201cRessource dazu zu buchen\u201d. Und denken Sie mal weiter. Wir alle haben so viele Ger\u00e4tschaften zu Hause liegen, die im Endeffekt auch Ressourcen sind. Ich spreche hier von Spielekonsolen, alten Laptops, Computern &#8211; vielleicht mit alten Grafikkarten. Denken Sie mal im Sinne der Nachhaltigkeit: Wir w\u00fcrden solche Ressourcen im Endeffekt vernetzen &#8211; gerade im Bereich Gaming ist das ein gro\u00dfer Schritt. Und wir haben den ersten Schritt getan um genau darin Experten zu werden. Verstehen Sie?<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[4],[5]\">[4],[5]<\/a><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Ja nat\u00fcrlich. Interessanter Aspekt. Frau Infra Struc-Ture, k\u00f6nnen Sie uns mehr zu Ihrer Hauptt\u00e4tigkeit und Ihren Aufgaben erz\u00e4hlen. Was bedeutet \u201cInfrastructure as Code\u201d?<\/h1>\n\n\n\n<p><strong>Frau Infra Struc-Ture<\/strong><\/p>\n\n\n\n<p>Zu Beginn des Projektes &#8211; als ich noch nicht dabei war &#8211; wurden viele Tasks, wie das Einrichten der Raspberry Pi\u2019s manuell vorgenommen. Unter dem manuellen Einrichten verstehen wir z.B. auch das setzen von statischen IP Adressen. Da das Team anfangs noch viel experimentieren musste, kam es \u00f6fter vor, dass die Pi\u2019s neu aufgesetzt werden mussten. Dieser Vorgang war m\u00fchselig und zeitraubend, weshalb ich ins Team geholt wurde. Meine Aufgabe war es die soeben beschriebenen manuellen Abl\u00e4ufe zu automatisieren und das Team im Bereich \u201cInfrastructure as Code\u201d zu schulen. In unserer Familie sagen wir auch IaC zu \u201cInfrastructure as Code\u201d und als Code wird maschinenlesbarer Code verstanden. Das kann man sich so vorstellen, als w\u00fcrde man eine Software schreiben. Mithilfe des Codes wird die technische Infrastruktur definiert, zB. Speicher, Netzwerk oder Rechenleistung. Es gibt hier mehrere Tools die einem die Arbeit erleichtern. Diese IaC-Tools unterscheiden sich in ihrem Aufbau und ihrer Sprache voneinander. Verfahrenssprachen (Procedural languages) sind Systemadministratoren &#8211; also die Personen, die sich um die Server k\u00fcmmern &#8211; mit Wissen \u00fcber Skripte, vertrauter. Chef und Ansible verwenden eine prozedurale Sprache, in der sie Code schreiben, der Schritt f\u00fcr Schritt angibt, wie der gew\u00fcnschte Endzustand erreicht wird. Hingegen verwenden Terraform, SaltStack und Puppet einen deklarativen Stil, bei dem Code geschrieben wird, der den gew\u00fcnschten Endzustand angibt. Das IaC-Tool selbst bestimmt dann, wie dieser Zustand am effizientesten erreicht werden kann.<\/p>\n\n\n\n<p>Bei IaC wird die komplette Infrastruktur \u00fcber Skripte und Programmfiles definiert. Somit f\u00e4llt der Overhead der manuellen Konfiguration weitestgehend weg. Das ist sehr praktisch.<\/p>\n\n\n\n<p>Ich habe Ihnen hier mal eine Tabelle mitgebracht, in der Sie ein paar Open Source &#8211; also frei verf\u00fcgbar, unter der Open Source Lizenz &#8211; Tools sehen k\u00f6nnen, die mich bei meiner Arbeit unterst\u00fctzen. Alle Tools wurden mit einem bestimmten Zweck oder einer bestimmten Absicht entwickelt. Daher unterscheiden sie sich in ihrer Verwendung und den Anwendungszwecken. Im Laufe der Jahre haben sich die meisten Tools auch weiterentwickelt, um eine Vielzahl von Anwendungsf\u00e4llen zu adressieren. Somit k\u00f6nnen sie die meisten IaC-Anforderungen problemlos erf\u00fcllen. Je nach Anforderung ist ein Tool m\u00f6glicherweise besser geeignet als ein anderes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2018-11-19-at-5.03.18-PM.png.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"509\" data-attachment-id=\"22463\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/02\/28\/himbeer-tarte-und-harte-fakten-im-interview-mit-ansible-k3s-infrastructure-as-code-und-raspberry-pi\/screen-shot-2018-11-19-at-5-03-18-pm-png\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2018-11-19-at-5.03.18-PM.png.jpeg\" data-orig-size=\"1432,712\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screen-Shot-2018-11-19-at-5.03.18-PM.png\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2018-11-19-at-5.03.18-PM.png-1024x509.jpeg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2018-11-19-at-5.03.18-PM.png-1024x509.jpeg\" alt=\"\" class=\"wp-image-22463\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2018-11-19-at-5.03.18-PM.png-1024x509.jpeg 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2018-11-19-at-5.03.18-PM.png-300x149.jpeg 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2018-11-19-at-5.03.18-PM.png-768x382.jpeg 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2018-11-19-at-5.03.18-PM.png.jpeg 1432w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption><a href=\"#quellenverzeichnis\" title=\"[13]\">[13]<\/a>: Vergleich von Infrastructure as Code Tools<\/figcaption><\/figure>\n\n\n\n<p>IaC-Tools k\u00f6nnen in zwei Typen unterteilt werden: Tools wie Ansible, Puppet, SaltStack und Chef geh\u00f6ren zum Typ \u201cConfiguration Management\u201d. Sie wurden entwickelt, um Software auf vorhandene Server Instanzen &#8211; also Teile des Servers, oder \u201cKopien\u201d davon &#8211; zu installieren und zu verwalten (z. B. Installation von Paketen, Skripten oder Konfigurationsdateien oder dem Starten von Diensten).&nbsp;<\/p>\n\n\n\n<p>Orchestrierungs-Tools wie Terraform gelten hingegen als \u201cOrchestratoren\u201d. Solche Orchestrierungs-Tools sind so konzipiert, dass sie die Server Instanzen selbst bereitstellen und die Konfiguration dieser Server anderen Tools \u00fcberlassen. Die Orchestrierung erf\u00fcllt die Anforderung an die Umgebungen auf einer h\u00f6heren Ebene als das Konfigurationsmanagement es k\u00f6nnte. Der Fokus liegt hier auf der Koordination der Konfiguration \u00fcber komplexe Umgebungen und Cluster hinweg.<\/p>\n\n\n\n<p>Ich versuche das Ganze nochmal zu abstrahieren: Stellen Sie sich gern mal ein gro\u00dfes Event mit mehreren Sinfonie-Orchestern vor. Ein Gast Dirigent soll alle diese Orchester bei einem St\u00fcck anleiten. Es soll au\u00dferdem m\u00f6glichst harmonisch klingen. Terraform fungiert als der Gast-Dirigent. Er leitet die Organisation vieler Orchester, sodass alle gut zusammenarbeiten k\u00f6nnen an. \u00dcben m\u00fcssen die MusikerInnen jedoch innerhalb ihres Heimat-Orchesters selbst mit ihrem Dirigenten. Den Heimat-Dirigenten wiederum kann man sich als \u201cConfigurations Manager\u201d vorstellen. Er sagt wo jede Person sitzen soll und bringt sein Orchester dazu harmonisch zu spielen. Damit alle Orchester gleicherma\u00dfen gut spielen braucht es jedoch den Gast-Dirigenten auf dem Event.<\/p>\n\n\n\n<p>Ein weiterer Punkt, den es bei der Auswahl des richtigen Tools zu beachten gilt, ist die Anforderung an die Infrastruktur. Die Frage: \u201cSoll eine Umgebung \/ ein Server ver\u00e4nderlich &#8211; \u201cmutable\u201d &#8211; oder unver\u00e4nderlich &#8211; \u201cImmutable\u201d &#8211; sein? Herk\u00f6mmliche Serverumgebungen sind ver\u00e4nderlich, wenn sie nach der Installation immer wieder ge\u00e4ndert werden k\u00f6nnen. Administratoren nehmen st\u00e4ndig Optimierungen vor oder f\u00fcgen Code hinzu. Kleine Helferlein wie Konfigurationsmanagement-Tools &#8211; so genannte CM-Tools &#8211; wurden entwickelt, um die Komplexit\u00e4t zu vereinfachen und Ordnung in die Konfiguration und Aktualisierung von mehreren Servern zu bringen. F\u00fcr die Administratoren ist das dann etwas \u00fcbersichtlicher.<\/p>\n\n\n\n<p>Eine unver\u00e4nderliche Infrastruktur beinhaltet Server, die nach ihrer Bereitstellung nicht mehr ge\u00e4ndert werden. Wenn sie dennoch aktualisiert oder ge\u00e4ndert werden m\u00fcssten, werden neue Server aus einer Vorlage mit den gew\u00fcnschten \u00c4nderungen neu erstellt. Bedeutet es gibt wie eine Art vorgefertigte Schablone, nach der dann ein neues Abbild erstellt und das alte verworfen wird. Dieses Vorgehen ist \u00fcblich f\u00fcr Umgebungen &#8211; als Umgebungen bezeichnet man einfach eine gr\u00f6\u00dfere Menge an Servern oder Computern innerhalb eines Netzwerkes -, die mittels Terraform aufgesetzt wurden. Neue Server ersetzen die bestehenden Server. \u00c4hnlich ist das Vorgehen auch beim Aufsetzen und Verwalten von Containern.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16]\">[6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16]<\/a><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">K\u00f6nnen Sie erkl\u00e4ren, was sie mit \u201cContainern\u201d meinen?<\/h1>\n\n\n\n<p><strong>Frau Infra Struc-Ture<\/strong><\/p>\n\n\n\n<p>Container k\u00f6nnen Sie sich wie echte Container auf einem Frachtschiff vorstellen. Vielleichte kennen Sie auch bereits die Analogie des Containerschiffes von Docker? Die Container auf den Schiffen sind quasi in sich geschlossene Anwendungen, die sich untereinander erst einmal nicht sehen. Sie enthalten einen Microservice oder eine App und alles, was zu deren Ausf\u00fchrung erforderlich ist. Der gesamte Inhalt eines Containers wird in einem Image abgebildet. Dies ist eine codebasierte Datei, die alle Libraries und Abh\u00e4ngigkeiten enth\u00e4lt. Da sie den Kernel des Host Systems benutzen und kein eigenes Betriebssystem mitbringen, sind sie viel leichtgewichtiger als virtuelle Maschinen.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[17]\">[17]<\/a><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Vielen Dank f\u00fcr die Beispiele. Ich denke das konnte man ganz gut verstehen. Nun aber mal ganz unter uns: Wieso haben Sie Ann Sibel \u00fcberhaupt mit in ihr Team genommen?<\/h1>\n\n\n\n<p><strong>Herr Archie Tex-Ture<\/strong><\/p>\n\n\n\n<p>Ausschlaggebend bei der Wahl der neuen Kollegin war die von uns verwendete Architektur. Viele Tools tendieren zu einer Server Client Architektur die bei uns jedoch eher schlecht funktioniert h\u00e4tte. Uns war es wichtig, dass wir nicht erst noch einen Client auf den Raspberry Pi\u2019s installieren m\u00fcssen. Das h\u00e4tte ja auch einfach wieder unn\u00f6tig Ressourcen verschenkt. Das IaC-Tool sollte demnach das komplette Setup \u00fcbernehmen. Ansible ben\u00f6tigt keinen Client, um eingesetzt zu werden. Von einem externen Host &#8211; in unserem Fall einfach ein Laptop -, k\u00f6nnen die Setup-Playbooks gestartet werdet. Vielleicht fragen Sie sich jetzt: H\u00e4? Was sind Playbooks? Das ist nicht irgendein Mandala-Ausmalbuch, wie ich zun\u00e4chst dachte, sondern das kann man sich wie ein Kochrezept vorstellen, das die Abfolge unseres Projektes beinhaltet. Ansible baut dann eine Verbindung zu den Ziel Hosts &#8211; also unseren Raspberry Pi Computern &#8211; auf und f\u00fchrt die konfigurierten Befehle \u00fcber eine sichere Netzwerkverbindung (SSH) aus. SSH bedeutet \u201cSecure Shell\u201d und ist ein Netzwerkprotokoll. Mehr ist an der Stelle nicht wichtig zu wissen. Man kann bei den Raspberry Pi Computern SSH ganz einfach aktivieren, indem man eine leere Datei mit dem namen \u201c.ssh\u201d in ihr root Verzeichnis legt. Aber das nur am Rande.<\/p>\n\n\n\n<p>In der Tabelle, die Kollegin Infra Struc-Ture ihnen vorhin gezeigt hat ist SaltStack zwar ebenfalls als \u201cClient only\u201d System aufgez\u00e4hlt, jedoch entsprach dieses Setup nicht ganz unseren Vorstellungen. Ohne zu weit in ein anderes Gebiet einzutauchen: Saltstack verwendet im Normalfall eine so genannte Master\/Minions Architektur. Und nein ich spreche nicht vom gleichnamigen Universal Pictures Film. Bei einer solchen Architektur ist eine Komponente ein so genannter \u201cMaster\u201d &#8211; er \u00fcberblickt und \u00fcberwacht alle ihm zugeordneten \u201cMinions\u201d oder auch \u201cNodes\u201d. Kann man sich jedoch \u00e4hnlich wie in dem Trickfilm vorstellen &#8211; viele, viele wunderbare Mitarbeitenden, die Minions (\u201cNodes\u201d) und einen Manager, Gru (\u201cMaster\u201d). *lacht* Jetzt m\u00fcsste man vermutlich den Film auch noch gesehen haben\u2026<\/p>\n\n\n\n<p>Das Gegenteil w\u00e4re eine masterless Architektur, bei der die Konfigurationsverwaltung von Salt f\u00fcr einen einzelnen Rechner genutzt werden kann &#8211; also ist der Rechner quasi gleichzeitig Master und Minion. Somit h\u00e4tten wir wieder etwas manuell einrichten m\u00fcssen, bevor wir das automatische Setup vornehmen k\u00f6nnen.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[9], [11], [18], [19]\">[9], [11], [18], [19]<\/a><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Jetzt haben wir einiges \u00fcber Salt und Ansible geh\u00f6rt. Mich w\u00fcrde nun genauer interessieren wie Sie Frau Ann Sibel die Arbeit Ihrer Kollegen erleichtern konnten.<\/h1>\n\n\n\n<p><strong>Frau Ann Sibel<\/strong><\/p>\n\n\n\n<p>Ich habe mich von Anfang an einfach sehr wohl gef\u00fchlt in der Gruppe. Gerade mit der Hardware Komponente der Raspberry Pi\u2019s bin ich ja sowieso vertraut und hab mich dann auch echt gern der Aufgabe angenommen. Mein Lebensmotto ist das strukturierte Unterteilen von Aufgaben in klar definierte Klassen und Objekte. Ich Unterteile daher gern alle meine Aufgabenbereiche in Inventory, Playbooks, Tasks, Module, Handler und Rollen. Zumindest in diesem Projekt. *lacht* Nat\u00fcrlich gibt es hier noch viel mehr, was ich aufz\u00e4hlen k\u00f6nnte, aber das sind auf jeden Fall mal die Wichtigsten. In der Datei \u201cInventory\u201d halte ich alle Knoten fest auf die zugegriffen werden sollen. Sie enth\u00e4lt IP-Adressen und oder Namen der verf\u00fcgbaren Hosts. Ebenfalls k\u00f6nnen diese Eintr\u00e4ge auch gruppiert werden. Das kann man sich vorstellen, wie in einem Mehrfamilienhaus. Es gibt verschiedene Parteien, in der unterschiedliche Personen oder Familien wohnen. Und das \u201cInventory\u201d ist quasi die Sammlung der Klingelschildern am Eingang. Wenn jetzt Parteien umziehen sollen, dann wei\u00df ich ganz genau Bescheid wohin und kann die Adressen bzw. Klingelschilder entsprechend anpassen. Hier habe ich Ihnen noch einen Ausschnitt aus unserem Projekt mitgebracht. Finden Sie nicht auch, dass das Inventory so sch\u00f6n aufger\u00e4umt ist?! Ich freue mich immer wieder aufs Neue, wenn ich einen Blick darauf werfen kann.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[9]\">[9]<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/inventory.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"464\" height=\"522\" data-attachment-id=\"22464\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/02\/28\/himbeer-tarte-und-harte-fakten-im-interview-mit-ansible-k3s-infrastructure-as-code-und-raspberry-pi\/inventory\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/inventory.jpg\" data-orig-size=\"464,522\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"inventory\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/inventory.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/inventory.jpg\" alt=\"\" class=\"wp-image-22464\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/inventory.jpg 464w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/inventory-267x300.jpg 267w\" sizes=\"auto, (max-width: 464px) 100vw, 464px\" \/><\/a><figcaption>Inventory-file<\/figcaption><\/figure>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Mal ehrlich, was hilft uns denn jetzt das Wissen \u00fcber die IP-Adressen der Ziel-Hosts? Wieso der Aufwand?<\/h1>\n\n\n\n<p><strong>Frau Ann Sibel<\/strong><br>Sie wollen jetzt sicher genauer wissen, wie sie uns bei der Automatisierung helfen. Ganz einfach: Mithilfe der IP-Adressen k\u00f6nnen wir uns mittels SSH auf die Hosts verbinden. Dort verteilen wir kleine Programme, die sogenannten \u201cAnsible-Module&#8221; &#8211; die wir vorher selbstverst\u00e4ndlich in den Playbooks beschrieben haben. Anschlie\u00dfend werden diese Module ausgef\u00fchrt und nach Fertigstellung wieder entfernt. Auch hier habe ich Ihnen mal eine Zeichnung zur Veranschaulichung mitgebracht.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.47.47.png\"><img loading=\"lazy\" decoding=\"async\" width=\"846\" height=\"658\" data-attachment-id=\"22465\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/02\/28\/himbeer-tarte-und-harte-fakten-im-interview-mit-ansible-k3s-infrastructure-as-code-und-raspberry-pi\/screen-shot-2022-02-28-at-09-47-47\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.47.47.png\" data-orig-size=\"846,658\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screen-Shot-2022-02-28-at-09.47.47\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.47.47.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.47.47.png\" alt=\"\" class=\"wp-image-22465\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.47.47.png 846w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.47.47-300x233.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.47.47-768x597.png 768w\" sizes=\"auto, (max-width: 846px) 100vw, 846px\" \/><\/a><figcaption><a href=\"#quellenverzeichnis\" title=\"[20]\">[20]<\/a>: Funktionsweise von Ansible<\/figcaption><\/figure>\n\n\n\n<p>Mein Kollege hatte ja bereits die Playbooks erw\u00e4hnt. Ein Playbook enth\u00e4lt mehrere Aufgabenbeschreibungen &#8211; so genannte Tasks &#8211; und ist eine einfache yaml-Datei &#8211; YAML ist das Dateiformat, abgek\u00fcrzt .yml -, die in einer prozeduralen Sprache geschrieben ist. Die prozedurale Programmierung ist eine Art der strukturierten Programmierung. Mit ihr wird eine Gesamtaufgabe, die softwarem\u00e4\u00dfig gel\u00f6st werden soll, in kleinere Teilaufgaben unterteilt<\/p>\n\n\n\n<p>Playbooks sind daf\u00fcr da, die Einrichtung eines Systems zu dokumentieren. Ein Task dient dabei immer einem bestimmten Ziel, z. B. der Einrichtung eines Webservers oder der Bereitstellung einer Anwendung. Die Aufgaben werden in der gleichen Reihenfolge ausgef\u00fchrt, in der sie in einem Playbook definiert sind. Also wie ein Kochrezept. Sie befolgen es von oben nach unten. Ich habe mal ein Playbook aus unserem Projekt mitgebracht (Abbildung 1 orangener Kasten). Wie Sie sehen befinden wir uns hier in der Datei \u201c01.init_setup.yml\u201d. Die Zeile 3 definiert die Hostgruppe aus der Inventory Datei, auf der das Playbook ausgef\u00fchrt werden soll. In unserem Fall sollen die Tasks auf allen Hosts (bei uns sind das die Raspberry Pi Computer) der Gruppe \u201cpi\u201d ausgef\u00fchrt werden. Neben Tasks gibt es auch noch Pre-Tasks welche, wie der Name schon suggeriert, vor den Aufgaben, die in der .yml-Datei genannten sind, ausgef\u00fchrt werden sollen.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[9]\">[9]<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/playbook.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"936\" height=\"635\" data-attachment-id=\"22466\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/02\/28\/himbeer-tarte-und-harte-fakten-im-interview-mit-ansible-k3s-infrastructure-as-code-und-raspberry-pi\/playbook\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/playbook.jpg\" data-orig-size=\"936,635\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"playbook\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/playbook.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/playbook.jpg\" alt=\"\" class=\"wp-image-22466\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/playbook.jpg 936w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/playbook-300x204.jpg 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/playbook-768x521.jpg 768w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><\/a><figcaption>Ansible-Playbook<\/figcaption><\/figure>\n\n\n\n<p>Die eben bereits angesprochenen Module sind Befehle, die etwas tun (z. B. eine Rechtsinstanz erstellen, sicherstellen, dass ein Verzeichnis vorhanden ist, ein Paket aktualisieren usw.). Sie sind einzelne Code Einheiten, die \u00fcber die Befehlszeile oder in einem Playbook-Task verwendet werden k\u00f6nnen.&nbsp; Tats\u00e4chlich gibt es bereits mehr als 2000 Module die f\u00fcr alle frei verf\u00fcgbar sind. Ich hab Ihnen hier mal den Link zu meiner Seite mitgebracht: <a href=\"https:\/\/docs.ansible.com\/ansible\/2.9\/modules\/list_of_all_modules.html\">https:\/\/docs.ansible.com\/ansible\/2.9\/modules\/list_of_all_modules.html<\/a>&nbsp; Wir verwenden sie bei uns im Projekt in unseren Playbooks. Zum Beispiel das Modul \u201cshell\/command\u201d. Man kann es verwenden, um alle Befehle auszuf\u00fchren, f\u00fcr die kein Modul existiert. Ich, Ann Sibel, f\u00fchre jedes Modul in der Regel auf dem entfernten Zielknoten aus und sammle die R\u00fcckgabewerte ein. Ein Modul, welches wir unter anderem in unserem Projekt verwendet haben, ist das Modul \u201cansible.builtin.ping\u201d. Dies ist ein Bestandteil des Ansible-Core &#8211; also quasi eine Standardfunktion. Mit ihr wird eine Verbindung zum Ziel-Host aufgebaut. Wir klopfen also einmal an und schauen ob jemand zuhause ist. Konnte der Host erreicht werden wird ein \u201cpong\u201d als R\u00fcckgabewerte zur\u00fcckgegeben. Das ist ganz praktisch um zu kontrollieren ob wir eine valide IP haben, ein Host korrekt hochgefahren und erreichbar ist.&nbsp;<\/p>\n\n\n\n<p>Um doppelten Code zu Vermeiden k\u00f6nnen so genannte Rollen verwendet werden. Diese nennt man Kapsel-Konfigurationen f\u00fcr wiederverwendbare Aufgaben. Einzelne Rollen stehen auch hier wieder frei zur Verf\u00fcgung. Hier bietet meine Cousine Ansible Galaxy \u00fcber 4000 Rollen die integriert werden k\u00f6nnen an. Auch hier mal der Link zu ihrer Seite: <a href=\"https:\/\/galaxy.ansible.com\/\">https:\/\/galaxy.ansible.com<\/a>&nbsp;<\/p>\n\n\n\n<p>Nicht zu vergessen sind Handler. Handler Aufrufe befinden sich genau wie die normalen Tasks (Aufgaben) in einem meiner Ansible-Playbooks. Diese Aufgaben werden jedoch nur dann ausgef\u00fchrt wenn eine \u00c4nderung an einem Rechner vorgenommen wurde. Eine Aufgabe also zwingend notwendig ist. Als Beispiel: Ich muss einen Host neu starten, weil ich zuvor eine wichtige Konfiguration abge\u00e4ndert habe. Was wichtig und zu beachten ist: Handler-Aufgaben werden nur ausgef\u00fchrt wenn die Handler mittels \u201cnotify\u201d benachrichtigt werden. Die einzelnen Tassk befinden sich dann in der zugeh\u00f6rigen Handler Datei (siehe blaues K\u00e4stchen). Handler werden immer am Ende einer Playbooks ausgef\u00fchrt, auch wenn diese bereits am Anfang benachrichtigt werden. Ist das zu sp\u00e4t kann mittels \u201cmeta: flush_handlers\u201d das Ausf\u00fchren des Handlers zu einem fr\u00fcheren Zeitpunkt erzwungen werden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/handler.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"592\" data-attachment-id=\"22467\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/02\/28\/himbeer-tarte-und-harte-fakten-im-interview-mit-ansible-k3s-infrastructure-as-code-und-raspberry-pi\/handler\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/handler.jpg\" data-orig-size=\"1116,645\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"handler\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/handler-1024x592.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/handler-1024x592.jpg\" alt=\"\" class=\"wp-image-22467\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/handler-1024x592.jpg 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/handler-300x173.jpg 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/handler-768x444.jpg 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/handler.jpg 1116w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Handler<\/figcaption><\/figure>\n\n\n\n<p>In unserem Projekt haben wir also Playbooks geschrieben und diese haben f\u00fcr uns dann die Raspberry Pi\u2019s konfiguriert. Es waren keine manuellen Anpassungen an der Hardware mehr notwendig. Alles automatisiert.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[9], [20], [21]\">[9], [20], [21]<\/a><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Klasse! Nochmal zu dem Projekt: Wir haben vorhin am Rande geh\u00f6rt, dass eins der Ziele die Bereitstellung eines K3s Clusters war. K\u00f6nnen Sie Herr Kah Dreis uns hierzu mehr erz\u00e4hlen?<\/h1>\n\n\n\n<p><strong>Herr Kah Dreis<\/strong><\/p>\n\n\n\n<p>Nat\u00fcrlich sehr gerne. Wie Sie bereits erw\u00e4hnten war eines unserer Ziele das Ausrollen eines K3s Clusters. Um genau zu sein, war es uns anfangs jedoch erst einmal nur wichtig ein Container Orchestrierungs Tool auf unseren Raspberry Pi\u2019s zu haben. F\u00fcr uns haben sich also die Fragen gestellt: Was ist das geeignete Tool? Was l\u00e4uft performant? Und vor allem &#8211; Was l\u00e4sst sich gut ausrollen?<br>Aber ich m\u00f6chte nochmal mehr auf das Thema \u201cContainer Orchestrierung\u201d eingehen: In modernen Entwicklungsprozessen werden Anwendungen nicht mehr monolithisch programmiert. Es gibt also meist nicht mehr nur eine riesige Anwendung sondern Aufgaben sind in kleine Anwendungen aufgeteilt. Sie setzen sich somit aus mehreren hunderten von lose miteinander verkn\u00fcpften und in Containern enthaltenen Komponenten zusammen. Damit die Anwendung in der gew\u00fcnschten Weise funktioniert, m\u00fcssen alle Komponenten zusammenarbeiten.<\/p>\n\n\n\n<p>Container Orchestration bezieht sich auf den Prozess des Organisierens der Funktionsweise einzelner Komponenten und der Anwendungsebenen. \u00c4hnlich wie ein Dirigent der im Orchester daf\u00fcr sorgt, dass ein harmonisches Zusammenspiel aller beteiligten Musiker das gew\u00fcnschte Ergebnis erzeugt. Es sorgt also immer daf\u00fcr, dass der definierte Endzustand erreicht wird. Bedeutet, f\u00e4llt beispielsweise ein Container aus, und es wurde definiert, dass immer ein Container laufen muss, wird ein neuer erstellt. Auch das Bild des Steuermanns, der auf Griechisch \u201cKubernetes\u201d genannt wird, verdeutlicht die Funktion dieser n\u00fctzlichen Tools. Die Open Source Software \u201cKubernetes\u201d ist mittlerweile der Quasi-Standard der Container-Verwaltung.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[22], [23]\">[22], [23]<\/a><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Ah stimmt, uns ist zu Ohren gekommen, dass Sie Herr Kah Dreis (k3s) mit Kubernetes (k8s) verwandt sind. Stimmt das?<\/h1>\n\n\n\n<p><strong>Herr Kah Dreis<\/strong><\/p>\n\n\n\n<p>Das ist richtig. Wir unterscheiden uns in unseren Grundfunktionen nicht. Jedoch kann ich von mir behaupte, dass ich Anwendungen wesentlich schneller bereitstellen kann. Ebenfalls gelingt es mir Cluster schneller hochzufahren. Ich wurde zudem speziell ausgebildet um als leichtgewichtiger Container-Orchestrierer zum Ausf\u00fchren von Kubernetes auf Bare-Metal-Servern zu agieren. \u201cBare Metal\u201d aus dem Englischen quasi \u201cblankes Metall\u201d. Kubernetes ist hingegen eher ein Allzweck-Container-Orchestrierer. Ein weiterer Punkt der uns unterscheidet ist unser Einsatz von \u201cKubelet\u201d. \u201cKubelet\u201d ist ein Agent, der auf jedem Kubernetes-Knoten ausgef\u00fchrt wird. Er stellt sicher, dass Container in einem \u201cPod\u201d ausgef\u00fchrt werden. Pods kann man sich vorstellen wie die H\u00fclle um Erbsen. In ihr k\u00f6nnen ein oder mehrere Container laufen. Diese teilen sich dann dieselben Ressourcen wie Speicher.&nbsp;<\/p>\n\n\n\n<p>Dieser Agent wird bei Kubernetes innerhalb eines Containers ausgef\u00fchrt. Ich hingegen f\u00fchre Kubelet direkt auf dem Hostcomputer aus und verwendet den Planungs Mechanismus des Hosts, um Container auszuf\u00fchren. Auch hier k\u00f6nnen Sie sehen, dass ich wesentlich besser mit den mir zur verf\u00fcgung stehenden Ressourcen umgehe. Aufgrund meiner geringen Gr\u00f6\u00dfe bin ich also bestens geeignet um auf IoT-Ger\u00e4ten wie Raspberry Pi\u2019s zu arbeiten. Kubernetes w\u00e4re auf einem Raspberry Pi nicht lauff\u00e4hig. Au\u00dferdem kann ich auf verschiedenen Prozessor-Architekturen wie AMD64, ARMv7 und ARM64 eingesetzt werden.&nbsp;<\/p>\n\n\n\n<p>Ich muss aber auch ehrlich sein: Es gibt vieles in dem Kubernetes besser ist als ich. Oder besser gesagt, es kommt auf den Anwendungszweck an. Mit Kubernetes kann Workload beispielsweise in mehreren Umgebungen ausgef\u00fchrt werden, w\u00e4hrend ich lediglich Workloads hosten kann, die in einer einzigen Cloud ausgef\u00fchrt wird. Ich w\u00e4re einfach nicht stark genug die Arbeitslast auf mehreren Clustern aufrecht zu halten.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[24], [25]\">[24], [25]<\/a><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Herr Archie Tex-Ture &#8211; Mich interessiert nun Ihre Meinung zu Ihrem Kollegen Kah Dreis &#8211; Gab es auch noch andere Kandidaten die als Container-Orchestrierer infrage kamen?<\/h1>\n\n\n\n<p><strong>Herr Archie Tex-Ture<\/strong><\/p>\n\n\n\n<p>Um ehrlich zu sein, ja. Heutzutage gibt viele Tools die ein vollwertiges Kubernetes Cluster mehr oder weniger gut ersetzen k\u00f6nnen. Jedes dieser Tools hat seinen speziellen Einsatzzweck und somit auch seine Vor- und Nachteile im Vergleich zu dem jeweiligen Use Case. Es war am Ende ein knappes Rennen zwischen \u201cMinikube\u201d, \u201ckind\u201d und \u201ck3s\u201d. Ich glaube der Charakter von Kah Dreis hat uns schlie\u00dflich \u00fcberzeugt. *lacht*<\/p>\n\n\n\n<p>Wie Sie auch der Tabelle, die ich ihnen hier mitgebracht habe, entnehmen k\u00f6nnen wurde \u201cMinikube\u201d speziell f\u00fcr Virtuelle Maschinen (VM\u2019s) entwickelt. Es wird eine VM erzeugt, die im Wesentlichen ein K8s-Cluster &#8211; K8s ist quasi unser Spitzname f\u00fcr \u201cKubernetes\u201d &#8211; mit einer Node ist. Der Einsatz von parallelen Instanzen (mehrer Cluster nebeneinander) ist hier problemlos m\u00f6glich.<\/p>\n\n\n\n<p>\u201cKind\u201d, damit ist nicht etwa mein Sohn, sondern ein Cluster welches in Docker-Containern l\u00e4uft, gemeint. Hier m\u00fcssen im Vergleich zu Minikube keine Virtuelle Maschinen gestartet werden und daher hat \u201cKind\u201d eine wesentlich schnellere Startgeschwindigkeit. Auch hier ist die Bereitstellung mehrerer parallel laufender Instanzen m\u00f6glich.<\/p>\n\n\n\n<p>Wie er schon selbst gesagt hat ist Kah Dreis (K3s) eine Mini-Version von Kubernetes. Es wurde im Gegensatz zu den beiden anderen Tools, welche Kubernetes SIGs Projekte sind, von \u201cRancher Labs\u201d entwickelt. Das ist eine andere Firma. Durch das Entfernen von Funktionen, und dem Verwenden leichtgewichtiger Komponente, wie der standardm\u00e4\u00dfig verwendeten SQLite Datenbank anstatt einem \u201cetcd\u201d (verteilter Key-Value-Store) konnte eine deutliche Verkleinerung erreicht werden. Neben einer SQLite Datenbank unterst\u00fctzt K3s PostgreSQL, MySQL, MariaDB und etcd. K3s wurde entwickelt um nativ auf mehreren Hosts zu laufen. Die Anwendung sieht eine Server Agent Architektur vor. Der Server fungiert hierbei als Manager w\u00e4hrend sich die Agents wie die Worker bei Kubernetes um den eigentlichen Workload k\u00fcmmern. Nat\u00fcrlich kann der Server, sowie die Agents auch in VMs oder Containern laufen. In diesem Fall ist auch K3s in der Lage mehrere Instanzen parallel laufen zu lassen.Das war jetzt doch recht fachlich, falls Sie da aber nochmal mehr dazu wissen wollen empfehle ich Ihnen diesen Link: <a href=\"https:\/\/rancher.com\/docs\/k3s\/latest\/en\/installation\/datastore\/\">https:\/\/rancher.com\/docs\/k3s\/latest\/en\/installation\/datastore\/<\/a> Zudem habe ich auch nochmal eine Vergleichstabelle mitgebracht.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.54.31.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"486\" data-attachment-id=\"22468\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/02\/28\/himbeer-tarte-und-harte-fakten-im-interview-mit-ansible-k3s-infrastructure-as-code-und-raspberry-pi\/screen-shot-2022-02-28-at-09-54-31\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.54.31.png\" data-orig-size=\"1512,718\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screen-Shot-2022-02-28-at-09.54.31\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.54.31-1024x486.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.54.31-1024x486.png\" alt=\"\" class=\"wp-image-22468\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.54.31-1024x486.png 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.54.31-300x142.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.54.31-768x365.png 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Screen-Shot-2022-02-28-at-09.54.31.png 1512w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption><a href=\"#quellenverzeichnis\" title=\"[29]\">[29]<\/a>: Vergleich Minikube, Kind und K3s<\/figcaption><\/figure>\n\n\n\n<p>Was uns vor allem f\u00fcr unser Projekt \u00fcberzeugt hat, war neben der geringen Anforderung an Speicherkapazit\u00e4t, die native ARM64 Unterst\u00fctzung. Und jetzt l\u00e4uft auch echt alles super.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[26], [27], [28], [29]\">[26], [27], [28], [29]<\/a><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Wenn Sie jetzt sagen, dass alles l\u00e4uft. Wie beweisen Sie das? Haben Sie irgendwelche Testverfahren eingesetzt um das zu \u00fcberpr\u00fcfen?<\/h1>\n\n\n\n<p><strong>Herr Archie Tex-Ture<\/strong><\/p>\n\n\n\n<p>Ich antworte einfach nochmal: Naja, sie m\u00fcssen beachten, dass Ansible-Ressourcen Modelle sind, die einen gew\u00fcnschten Zustand definieren. Es sollte daher nicht notwendig sein irgendetwas speziell zu testen. Wenn Dienste gestartet, Pakete installiert oder andere Dinge erfolgt sind, dann teilt uns Ann Sibel das direkt bei der Ausf\u00fchrung ihres Playbooks mit. Ann Sibel ist das System, das sicherstellt, dass diese Dinge deklarativ wahr sind. Hierzu werden die R\u00fcckgabecodes von Befehlen automatisch \u00fcberpr\u00fcft. Konnte beispielsweise ein User nicht angelegt werden, wird die Ausf\u00fchrung des Playbooks sofort gestoppt.<\/p>\n\n\n\n<p>Es ist sinnvoller die Anwendung, welche bereitgestellt wird, zu testen. Kann der Webserver nach der Einrichtung das Systems erfolgreich angesprochen werden? Ist das K3s Cluster erreichbar und gesund? Oder wollten Sie auf diese Fragen etwa hinaus?<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[30]\">[30]<\/a><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Ja genau. Erz\u00e4hlen Sie uns gern mehr dar\u00fcber.<\/h1>\n\n\n\n<p><strong>Frau Ann Sibel<\/strong><\/p>\n\n\n\n<p>Diesmal antworte ich, denn ich habe Ihnen sogar einen Auszug aus unserem Quellcode mitgebracht. Hier sehen wir ein Beispiel f\u00fcr einen Test den wir in unserem Projekt durchgef\u00fchrt haben. Zu sehen sind Handler, welche nach der Umstellung auf eine statische IP-Adresse ausgef\u00fchrt werden. Interessant ist der Task \u201cwait for host to return\u201d und der anschlie\u00dfende \u201cdebug\u201d-Task, der das Ergebnis unseres Tests beinhaltet.&nbsp;<\/p>\n\n\n\n<p>Nachdem die statische IP-Adresse konfiguriert und die Nodes neu gestartet wurden, sind die Hosts nicht mehr unter der alten IP-Adresse erreichbar. Wir pingen also die IP\u2019s der im Inventory definierten Gruppe \u201cmulti\u201d an. Ein solcher Neustart kann ein wenig Zeit beanspruchen. Damit keine Fehler entstehen, haben wir ein retry (Wiederholungszyklus) von 30 Sekunden angegeben, mit einem jeweiligen delay (Verz\u00f6gerung) von 10 Sekunden. Konnte eine Verbindung aufgebaut werden &#8211; oder der Wiederholungszyklus ist ersch\u00f6pft &#8211; so bricht der Task ab und speichert sein Ergebnis in die Variable \u201cresult\u201d. Dieses geben wir mittels \u201cresult.stdout\u201d in der Konsole aus. Und voila! Wir k\u00f6nnen sicherstellen, dass die Umstellung der IP-Adressen erfolgreich war.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[30]\">[30]<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/test.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"638\" data-attachment-id=\"22469\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/02\/28\/himbeer-tarte-und-harte-fakten-im-interview-mit-ansible-k3s-infrastructure-as-code-und-raspberry-pi\/test-3\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/test.jpg\" data-orig-size=\"1196,745\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"test\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/test-1024x638.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/test-1024x638.jpg\" alt=\"\" class=\"wp-image-22469\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/test-1024x638.jpg 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/test-300x187.jpg 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/test-768x478.jpg 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/test.jpg 1196w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Test<\/figcaption><\/figure>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Interessant. Aber sagen Sie: Mit Sicherheit gab es auch Probleme, auf die Sie bei ihrem Projekt gesto\u00dfen sind, oder? Wie haben Sie diese gel\u00f6st?<\/h1>\n\n\n\n<p><strong>Frau Infra Struc-Ture<\/strong><\/p>\n\n\n\n<p>Eines unsere Hauptprobleme war die Beschaffung der Raspberry Pi\u2019s. Aufgrund des, zu dieser Zeit vorherrschenden Chipmangels, wurden pro Person jeweils nur 2 Pi\u2019s verkauft. Hier mussten wir ein wenig tricksen, was jedoch mit h\u00f6heren Kosten verbunden war als noch ein halbes Jahr zuvor. Das ist schade aber am Ende bekamen wir nach einer l\u00e4ngeren Wartezeit dann auch unsere Hardware. Es war wie ein zu fr\u00fches Weihnachtsgeschenk. Au\u00dferdem hatten wir uns zu Anfang auf Grundlagen eines Tutorials verlassen. Das ist nicht immer empfehlenswert. Bis zu einem gewissen Punkt hat es uns gut geholfen in die Themen hinein zu kommen, aber es wurde viel zu viel Vorwissen vorausgesetzt und f\u00fcr selbstverst\u00e4ndlich genommen. Das war zum Teil wirklich frustrierend. Wir mussten vieles selbst nachforschen, da die Dokumentation des Tutorials unzureichend waren. Und der Hammer war dann, dass etwa Befehle verwendet wurden, die l\u00e4ngst veraltet und auf \u201cdeprecated\u201d gesetzt waren. Das war eine doofe Erkenntnis. Aber auch erleichternd, denn so haben wir Ann Sibel ins Team bekommen &#8211; uns mit ihren Playbooks selbst besch\u00e4ftigt &#8211; und dann ein echt cooles Projekt auf die Beine gestellt. Au\u00dferdem wurden wir in das Thema \u201cNetzwerktechnik\u201d quasi hinein geworfen. Das stellte sich auch als erfrischend raus. Wir wissen jetzt besser Bescheid als zuvor und es hat Spa\u00df gemacht mal im eigenen Haus ein bisschen \u201cSystemadministratorin\u201d zu spielen. Ein weiteres Problem war, da stand ich wirklich wie die Kuh vor dem Berg, wie man auf seine Pi Computer zugreifen kann. Zum Gl\u00fcck gab es die M\u00f6glichkeit sich mit mini-USB einen Bildschirm und Tastatur anzuschlie\u00dfen &#8211; und nach weiterer Recherche kamen wir dann auch auf den \u201cTrick\u201d mit SSH. Was auch problematisch war, war die Wahl des Betriebssystem f\u00fcr den Raspberry Pi. Wir wussten, die Prozessor Architektur ist ein x64 Prozessor aber konnten offiziell nur das 32bit Betriebssystem von Raspbian finden. Nach unserer Recherche haben wir dann das sich in der Beta-Version befindliche Bullseye x64 Lite gefunden. F\u00fcr unser Projekt hat das zum Gl\u00fcck relativ gut geklappt und es gab wenige Probleme. Wir haben viel Debugging betrieben um die Fehler herauszufinden, wenn es welche gab. Unser letztes, gr\u00f6\u00dferes Problem war, dass wir davon ausgegangen sind, dass \u201cPower over Ethernet\u201d (PoE) &#8211; damit wir uns die Kabel f\u00fcr die Stromversorgung zu den einzelnen Pi\u2019s sparen k\u00f6nnen &#8211; dasselbe ist wie PoE+. Oder besser gesagt uns war nicht bewusst, dass es da mehrere Versionen gibt. Es stellt sich heraus, dass PoE+ mehr Strom und daher eine andere Form von Netzwerk-Switch ben\u00f6tigt. Das war uns zuvor noch nicht ganz klar. Wir hatten also Hardware, die nicht miteinander harmoniert hat.<\/p>\n\n\n\n<p><a href=\"#quellenverzeichnis\" title=\"[2], [3], [31], [32], [33]\">[2], [3], [31], [32], [33]<\/a><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Wenn Sie das Projekt noch einmal machen w\u00fcrden, was w\u00fcrden Sie anders machen?<\/h1>\n\n\n\n<p><strong>Frau Infra Struc-Ture<\/strong><\/p>\n\n\n\n<p>Die Anlaufphase von Projekten kann recht langwierig sein. Bis man sich in einem Team einig ist, welche Ziele verfolgt werden wollen, k\u00f6nnen schon ein paar Wochen ins Land gehen. Besser ist es zum Schluss jedoch allemal &#8211; denn es macht einfach mehr Spa\u00df &#8211; gemeinsam zu arbeiten und was auf die Beine zu stellen!<\/p>\n\n\n\n<p>Von Projekt-Seite her w\u00fcrde mich pers\u00f6nlich nur interessieren, ob alles klappen w\u00fcrde, wenn wir mehr nodes &#8211; also noch mehr Raspberry Pi Computer &#8211; in unser Cluster mit aufnehmen und anschlie\u00dfen w\u00fcrden. Und vielleicht w\u00e4re auch spannend zu sehen, welche Ressourcen konkret verbraucht werden &#8211; zB. die Implementierung eines Dashboards zur \u00dcberwachung oder so. Fragen wie: Wie warm wird das Ganze? Wann brauche ich einen L\u00fcfter\/Wasserk\u00fchlung um mehr Leistung aus dem Cluster zu holen? Und zu guter Letzt w\u00fcrden wir uns im Team alle freuen, wenn das x64 Bullseye Betriebssystem von Raspberry noch in einer stabilen Version ver\u00f6ffentlicht w\u00fcrde. Dann g\u00e4be es auch hoffentlich etwas weniger zu debuggen.<\/p>\n\n\n\n<p>Ich bedanke mich im Namen des gesamten Interview-Teams recht herzlich bei Ihnen f\u00fcr das Interview und w\u00fcnsche Ihnen f\u00fcr ihre weitere Zukunft alles Gute.<\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\" id=\"quellenverzeichnis\">Quellenverzeichnis<\/h1>\n\n\n\n<p>[1] Bild zu Raspberry Pi: <a href=\"https:\/\/www.heise.de\/select\/make\/2019\/4\/1566295759078064\">https:\/\/www.heise.de\/select\/make\/2019\/4\/1566295759078064<\/a><\/p>\n\n\n\n<p>[2] Raspberry Pi: <a href=\"https:\/\/www.raspberrypi.com\/products\/raspberry-pi-4-model-b\/\">https:\/\/www.raspberrypi.com\/products\/raspberry-pi-4-model-b\/<\/a>&nbsp;<\/p>\n\n\n\n<p>[3] Prozessor Architektur Pi: <a href=\"https:\/\/raspberrytips.com\/raspberry-pi-os-64-bits-vs-32-bits\/\">https:\/\/raspberrytips.com\/raspberry-pi-os-64-bits-vs-32-bits\/<\/a>&nbsp;<\/p>\n\n\n\n<p>[4] Kubelet: <a href=\"https:\/\/kubernetes.io\/docs\/reference\/command-line-tools-reference\/kubelet\/\">https:\/\/kubernetes.io\/docs\/reference\/command-line-tools-reference\/kubelet\/<\/a>&nbsp;<\/p>\n\n\n\n<p>[5] IONOS: <a href=\"https:\/\/cloud.ionos.de\/managed\/kubernetes\">https:\/\/cloud.ionos.de\/managed\/kubernetes<\/a>&nbsp;<\/p>\n\n\n\n<p>[6] Infrastructure as Code: <a href=\"https:\/\/www.cloudcomputing-insider.de\/was-ist-infrastructure-as-code-iac-a-917671\/\">https:\/\/www.cloudcomputing-insider.de\/<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.cloudcomputing-insider.de\/was-ist-infrastructure-as-code-iac-a-917671\/\">was-ist-infrastructure-as-code-iac-a-917671\/<\/a><\/p>\n\n\n\n<p>[7] Procedural Language<\/p>\n\n\n\n<p>[8] Chef: <a href=\"https:\/\/docs.chef.io\/server\/install_server_ha\/\">https:\/\/docs.chef.io\/server\/install_server_ha\/<\/a>&nbsp;<\/p>\n\n\n\n<p>[9] Ansible: <a href=\"https:\/\/www.ansible.com\/\">https:\/\/www.ansible.com<\/a>&nbsp;<\/p>\n\n\n\n<p>[10] Terraform: <a href=\"https:\/\/www.terraform.io\/\">https:\/\/www.terraform.io<\/a>&nbsp;<\/p>\n\n\n\n<p>[11] SaltStack: <a href=\"https:\/\/saltproject.io\/\">https:\/\/saltproject.io<\/a>&nbsp;<\/p>\n\n\n\n<p>[12] Puppet: <a href=\"https:\/\/puppet.com\/\">https:\/\/puppet.com<\/a>&nbsp;<\/p>\n\n\n\n<p>[13] Tabelle &#8211; Vergleich: IaC Tools <a href=\"https:\/\/www.ibm.com\/cloud\/blog\/chef-ansible-puppet-terraform\">https:\/\/www.ibm.com\/<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.ibm.com\/cloud\/blog\/chef-ansible-puppet-terraform\">cloud\/blog\/chef-ansible-puppet-terraform<\/a>&nbsp;<\/p>\n\n\n\n<p>[14] Configuration-Management: <a href=\"https:\/\/www.atlassian.com\/de\/continuous-delivery\/principles\/configuration-management\">https:\/\/www.atlassian.com\/de\/continuous-delivery\/principles\/configuration-management<\/a>&nbsp;<\/p>\n\n\n\n<p>[15] Orchestrierung: <a href=\"https:\/\/www.redhat.com\/de\/topics\/containers\/what-is-container-orchestration\">https:\/\/www.redhat.com\/de\/topics\/containers\/what-is-container-orchestration<\/a>&nbsp;<\/p>\n\n\n\n<p>[16] Mutable vs. Immutable: <a href=\"https:\/\/www.bridge-global.com\/blog\/mutable-vs-immutable-infrastructure\/\">https:\/\/www.bridge-global.com\/blog\/mutable-vs-immutable-infrastructure\/<\/a>&nbsp;<\/p>\n\n\n\n<p>[17] Container: <a href=\"https:\/\/www.dev-insider.de\/was-sind-docker-container-a-597762\/\">https:\/\/www.dev-insider.de\/was-sind-docker-container-a-597762\/<\/a>&nbsp;<\/p>\n\n\n\n<p>[18] SSH: \u200b\u200b<a href=\"https:\/\/www.ionos.de\/digitalguide\/server\/tools\/secure-shell-ssh\/\">https:\/\/www.ionos.de\/digitalguide\/server\/tools\/secure-shell-ssh\/<\/a><\/p>\n\n\n\n<p>[19] Minions Film: <a href=\"https:\/\/www.illumination.com\/movie\/minions\/\">https:\/\/www.illumination.com\/movie\/minions\/<\/a>&nbsp;<\/p>\n\n\n\n<p>[20] Zeichnung Ansible Management: <a href=\"http:\/\/www.opslib.com\/2020\/04\/what-is-ansible-how-ansible-works_23.html\">http:\/\/www.opslib.com\/2020\/04\/what-is-ansible-how-ansible-works_23.html<\/a><\/p>\n\n\n\n<p>[21] Ansible Galaxy: <a href=\"https:\/\/galaxy.ansible.com\/\">https:\/\/galaxy.ansible.com<\/a>&nbsp;<\/p>\n\n\n\n<p>[22] k3s &#8211; Lightweight Kubernetes: <a href=\"https:\/\/k3s.io\/\">https:\/\/k3s.io<\/a><\/p>\n\n\n\n<p>[23] Orchestrierung: <a href=\"https:\/\/www.hpe.com\/at\/de\/what-is\/container-orchestration.html\">https:\/\/www.hpe.com\/at\/de\/what-is\/container-orchestration.html<\/a>&nbsp;<\/p>\n\n\n\n<p>[24] Kubernetes: <a href=\"https:\/\/kubernetes.io\/\">https:\/\/kubernetes.io<\/a><\/p>\n\n\n\n<p>[25] Vergleich k3s vs. k8s: <a href=\"https:\/\/www.p3r.one\/k8s-vs-k3s\">https:\/\/www.p3r.one\/k8s-vs-k3s<\/a><\/p>\n\n\n\n<p>[26] Minikube: <a href=\"https:\/\/minikube.sigs.k8s.io\/docs\/start\/\">https:\/\/minikube.sigs.k8s.io<\/a><\/p>\n\n\n\n<p>[27] Kind: <a href=\"https:\/\/kind.sigs.k8s.io\/\">https:\/\/kind.sigs.k8s.io<\/a>&nbsp;<\/p>\n\n\n\n<p>[28] Rancher: <a href=\"https:\/\/rancher.com\/docs\/k3s\/latest\/en\/installation\/datastore\/\">https:\/\/rancher.com\/docs\/k3s\/latest\/en\/installation\/datastore\/<\/a>&nbsp;<\/p>\n\n\n\n<p>[29] Tabelle &#8211; Minikube vs Kind vs k3s: <a href=\"https:\/\/www.jambit.com\/aktuelles\/toilet-papers\/minikube-vs-kind-vs-k3s-welches-lokale-kubernetes-cluster-eignet-sich-am-besten\/\">https:\/\/www.jambit.com\/aktuelles\/toilet-papers\/minikube-vs-kind-vs-k3s-welches-lokale-kubernetes-cluster-eignet-sich-am-besten\/<\/a><\/p>\n\n\n\n<p>[30] Ansible Test Strategies: <a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/reference_appendices\/test_strategies.html\">https:\/\/docs.ansible.com\/ansible\/latest\/reference_appendices\/test_strategies.html<\/a><\/p>\n\n\n\n<p>[31] Chipmangel 2021: <a href=\"https:\/\/www.zeit.de\/news\/2021-12\/13\/wie-der-chipmangel-entstanden-ist?utm_referrer=https%3A%2F%2Fwww.google.com%2F\">https:\/\/www.zeit.de\/news\/2021-12\/13\/wie-der-chipmangel-entstanden-ist?utm_referrer=https%3A%2F%2Fwww.google.com%2F<\/a><\/p>\n\n\n\n<p>[32] Tutorial geerlingguy: <a href=\"https:\/\/github.com\/geerlingguy\/ansible-role-kubernetes\">https:\/\/github.com\/geerlingguy\/ansible-role-kubernetes<\/a><\/p>\n\n\n\n<p>[33] PoE vs. PoE+: <a href=\"https:\/\/community.fs.com\/de\/blog\/poe-switch-types.html\">https:\/\/community.fs.com\/de\/blog\/poe-switch-types.html<\/a>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why so serious? &#8211; Ein Artikel von Sarah Schwab und Aliena Leonhard im Rahmen der Vorlesung Systems Engineering and Management. Die Idee, ein fiktives Interview zu erstellen, entstammt daraus komplexe Sachverhalte unterhaltsam und verst\u00e4ndlich zu machen. Wir sind heute zu Gast in der Tech-Sendung \u201cHimbeer Tarte und harte Fakten\u201d.&nbsp; Heute geht es unter Anderem um [&hellip;]<\/p>\n","protected":false},"author":1074,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,120,654,650,2],"tags":[456,7,210,225,576,338,578,154,340,577,457,14],"ppma_author":[868],"class_list":["post-22460","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-cloud-technologies","category-internet-of-things","category-scalable-systems","category-system-engineering","tag-ansible","tag-cloud","tag-cluster","tag-container","tag-infrastructure-as-code","tag-k3s","tag-kind","tag-kubernetes","tag-minikube","tag-netzwerk","tag-orchestration","tag-raspberry-pi"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":11711,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2020\/09\/29\/perfekter-gluhwein-fur-zuhause-thermometer-mit-raspberry-pi-und-aws\/","url_meta":{"origin":22460,"position":0},"title":"Perfekter Gl\u00fchwein f\u00fcr Zuhause: Thermometer mit Raspberry Pi und AWS","author":"jg129","date":"29. September 2020","format":false,"excerpt":"Abstract Kein anderes Getr\u00e4nk ist mit Weihnachtsm\u00e4rkten so verbunden wie Gl\u00fchwein. Und so trinkt sich der ausschweifende Weihnachtsmarktbesucher im Laufe der Adventszeit von Stand zu Stand bis er schlie\u00dflich am Ende des Jahres seinen Lieblingsstand gefunden hat. Doch auch daheim kann der perfekte Gl\u00fchwein gelingen.\u00a0 Wir zeigen, wie man sich\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/lh3.googleusercontent.com\/rbu36fXExVo14XfyUicXbIFjAgh1bvNnXHlaUVRfqLevpyZx4KVyjeuYdgItPx6y39R8L9Ub_hug03LYM3AIAW_F14vhBiXOZlt92qIpN0Y2h0H-czZ65ERnn3qUoWVh7JfI5ihA","width":350,"height":200,"srcset":"https:\/\/lh3.googleusercontent.com\/rbu36fXExVo14XfyUicXbIFjAgh1bvNnXHlaUVRfqLevpyZx4KVyjeuYdgItPx6y39R8L9Ub_hug03LYM3AIAW_F14vhBiXOZlt92qIpN0Y2h0H-czZ65ERnn3qUoWVh7JfI5ihA 1x, https:\/\/lh3.googleusercontent.com\/rbu36fXExVo14XfyUicXbIFjAgh1bvNnXHlaUVRfqLevpyZx4KVyjeuYdgItPx6y39R8L9Ub_hug03LYM3AIAW_F14vhBiXOZlt92qIpN0Y2h0H-czZ65ERnn3qUoWVh7JfI5ihA 1.5x"},"classes":[]},{"id":12796,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2021\/03\/12\/kiss-dry-n-solid-yet-another-kubernetes-system-built-with-ansible-and-observed-with-metrics-server-on-arm64\/","url_meta":{"origin":22460,"position":1},"title":"KISS, DRY \u2018n SOLID \u2014 Yet another Kubernetes System built with Ansible and observed with Metrics Server on arm64","author":"Artur Bergen","date":"12. March 2021","format":false,"excerpt":"This blog post shows how a plain Kubernetes cluster is automatically created and configured on three arm64 devices using an orchestration tool called Ansible. The main focus relies on Ansible; other components that set up and configure the cluster are Docker, Kubernetes, Helm, NGINX, Metrics Server and Kubernetes Dashboard. Individual\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/03\/nginx_welcome.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/03\/nginx_welcome.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/03\/nginx_welcome.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":26129,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2024\/02\/27\/ctf-infrastruktur-als-proof-of-concept-in-der-microsoft-azure-cloud\/","url_meta":{"origin":22460,"position":2},"title":"CTF-Infrastruktur als Proof-of-Concept in der Microsoft Azure Cloud","author":"jk233","date":"27. February 2024","format":false,"excerpt":"Einf\u00fchrung Eine eigene Capture-The-Flag (CTF) Plattform zu betreiben bringt besondere Herausforderungen mit sich. Neben umfangreichem Benutzermanagement, dem Bereitstellen und sicherem Hosten von absichtlich verwundbaren Systemen, sowie einer m\u00f6glichst einfachen Methode, spielbare Systeme von externen Quellen einzubinden. So m\u00f6chte man vielleicht der eigenen Community die M\u00f6glichkeit bieten, eigene Szenarien zu entwickeln,\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2024\/02\/HkdUqtOvFEbZdRFQaVd9LpUF6TaU8VoYhJn2kK0A-rzTGuPjvqiNLsNYpHnMuPZpLr5RFCfTW30d46KxetHLb8mYfYqN_70fqpOvYevgh1bfHZFI_UUKHbqRjDrHQ-b8QG2jXXV6E2zh2W35Rr6gpnk.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2024\/02\/HkdUqtOvFEbZdRFQaVd9LpUF6TaU8VoYhJn2kK0A-rzTGuPjvqiNLsNYpHnMuPZpLr5RFCfTW30d46KxetHLb8mYfYqN_70fqpOvYevgh1bfHZFI_UUKHbqRjDrHQ-b8QG2jXXV6E2zh2W35Rr6gpnk.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2024\/02\/HkdUqtOvFEbZdRFQaVd9LpUF6TaU8VoYhJn2kK0A-rzTGuPjvqiNLsNYpHnMuPZpLr5RFCfTW30d46KxetHLb8mYfYqN_70fqpOvYevgh1bfHZFI_UUKHbqRjDrHQ-b8QG2jXXV6E2zh2W35Rr6gpnk.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2024\/02\/HkdUqtOvFEbZdRFQaVd9LpUF6TaU8VoYhJn2kK0A-rzTGuPjvqiNLsNYpHnMuPZpLr5RFCfTW30d46KxetHLb8mYfYqN_70fqpOvYevgh1bfHZFI_UUKHbqRjDrHQ-b8QG2jXXV6E2zh2W35Rr6gpnk.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2024\/02\/HkdUqtOvFEbZdRFQaVd9LpUF6TaU8VoYhJn2kK0A-rzTGuPjvqiNLsNYpHnMuPZpLr5RFCfTW30d46KxetHLb8mYfYqN_70fqpOvYevgh1bfHZFI_UUKHbqRjDrHQ-b8QG2jXXV6E2zh2W35Rr6gpnk.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":6338,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2019\/03\/15\/kubernetesk8s-everywhere-but-how\/","url_meta":{"origin":22460,"position":3},"title":"Kubernetes (K8S) everywhere, but how?","author":"Immanuel Haag","date":"15. March 2019","format":false,"excerpt":"In the last months, nearly everybody has been talking about Kubernetes. It\u2019s incredible! This semester the Stuttgart Media University even held a training course on this topic. For DevOps or \u201ccloud-computing specialist\u201d mastering Kubernetes and the concepts around it is becoming more and more important. This blog post won\u2019t explain\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/up-and-running-with-kubernetes-13-638.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/up-and-running-with-kubernetes-13-638.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/up-and-running-with-kubernetes-13-638.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":20381,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2021\/08\/10\/hydropi\/","url_meta":{"origin":22460,"position":4},"title":"\ud83c\udf31HydroPi\ud83c\udf31 &#8211; Damit auch du deinen Garten vom Sofa aus gie\u00dfen kannst.","author":"Steffen Fingerle","date":"10. August 2021","format":false,"excerpt":"\u26a0\ufe0f Disclaimer Da das Projekt keinerlei Sicherheitsaspekte abdeckt, ist es aufgrund einer sehr hohen IT-Security Gefahr mit m\u00f6glicherweise schweren Folgen nicht f\u00fcr die Nutzung au\u00dferhalb des eigenen Heimnetzwerkes ausgelegt. \ud83c\udf31 Motivation Aus aktuellem Anlass in der Entwicklung von Smart Home Technologien existiert ein stetig wachsendes Interesse, auch in der eigenen\u2026","rel":"","context":"In &quot;Internet of Things&quot;","block_context":{"text":"Internet of Things","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/scalable-systems\/internet-of-things\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/08\/Software_Architektur-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/08\/Software_Architektur-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/08\/Software_Architektur-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/08\/Software_Architektur-1.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":11460,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2020\/09\/29\/get-car-location-using-raspberrypi-and-google-cloud-iot-core\/","url_meta":{"origin":22460,"position":5},"title":"Get car location using Raspberry Pi and Google Cloud IoT Core","author":"Simon L\u00f6bert","date":"29. September 2020","format":false,"excerpt":"Project idea Have you ever been in the situation, that you parked your car somewhere in the city and some hours later, you couldn't remember where you parked it? You may wish to have an application on your smartphone, which is able to locate your car. From this consideration, the\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/09\/grafik.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"authors":[{"term_id":868,"user_id":1074,"is_guest":0,"slug":"al138","display_name":"Aliena Leonhard","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/1512ff9cc427d42ec450406fff6c6ded9a94309ae1fd955be5d20560d0e87237?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/22460","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/users\/1074"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/comments?post=22460"}],"version-history":[{"count":6,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/22460\/revisions"}],"predecessor-version":[{"id":22479,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/22460\/revisions\/22479"}],"wp:attachment":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/media?parent=22460"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/categories?post=22460"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/tags?post=22460"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/ppma_author?post=22460"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}