{"id":2121,"date":"2022-12-01T22:20:34","date_gmt":"2022-12-01T21:20:34","guid":{"rendered":"https:\/\/informatik.htwk-leipzig.de\/seminar\/?p=2121"},"modified":"2023-10-04T13:28:55","modified_gmt":"2023-10-04T11:28:55","slug":"ansible","status":"publish","type":"post","link":"https:\/\/informatik.htwk-leipzig.de\/seminar\/lehrveranstaltungen\/betriebliche-informationssysteme\/2022\/ansible\/","title":{"rendered":"Ansible"},"content":{"rendered":"<h1><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-2127 alignleft\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/th.webp\" alt=\"\" width=\"285\" height=\"225\" \/><\/h1>\n<div>Zur Verwaltung von Rechnernetzen, Serverclustern oder Umgebungen die aus mehreren Rechnern bestehen, k\u00f6nnen nur mit gro\u00dfem Aufwand alle Einstellungen manuell get\u00e4tigt und anschlie\u00dfend von Hand auf dem aktuellen Stand gehalten werden.<\/div>\n<div>Zeitsparender ist der Einsatz von Automatisierungswerkzeugen. Mehrfach auszuf\u00fchrende oder sich regelm\u00e4\u00dfig wiederholende Installations- und Aktualisierungsaufgaben k\u00f6nnen konfiguriert und anschlie\u00dfend bei Bedarf ausgef\u00fchrt werden. Neben der Zeitersparnis kann durch die Wiederverwendung von Konfigurationen eine homogene Umgebung geschaffen werden, in der alle Anwendungen in der selben Version vorliegen.<\/div>\n<div>Eines dieser Automatisierungswerkzeuge ist Ansible.<\/div>\n<h3>Inhalt<\/h3>\n<ol>\n<li>Was ist Ansible<\/li>\n<li>Merkmale<\/li>\n<li>Installation\/Einrichtung<\/li>\n<li>Nutzung<\/li>\n<li>Anwendungsbeispiel<\/li>\n<li>Konkurrenz<\/li>\n<li>Fazit<\/li>\n<li>Quellenverzeichnis<\/li>\n<\/ol>\n<h3>Was ist Ansible<\/h3>\n<div>Ansible ist ein Automatisierungswerkzeug, das im Jahr 2012 ver\u00f6ffentlicht wurde.<\/div>\n<div>Mit diesem k\u00f6nnen verschiedene Aufgaben automatisiert und verwaltet werden.<\/div>\n<div>Mittels Skripten, die in einem *Playbook* zusammengefasst werden, ist die wiederholte Anwendung auf mehreren Einheiten &#8211; z.B. einem Server-Cluster eines Unternehmens &#8211; ohne manuellen Mehraufwand und mit Echtzeit\u00fcberwachung m\u00f6glich.<\/div>\n<div>Die Grundfunktionen von Ansible sind kostenlos verf\u00fcgbar. Zus\u00e4tzlich gibt es mit der <em>Red Hat Ansible Automation Platform<\/em>\u00a0eine kostenpflichtige Variante, die Grundfunktionen um weitere Features, Support und vorgefertigte Anwendungsl\u00f6sungen erweitert.<\/div>\n<div>In Ansible wird keine konkrete Programmiersprache gefordert.<\/div>\n<div>Die Definition, welches Skript zu verwenden ist, wird im <em>Playbook<\/em> in YAML verfasst.<\/div>\n<div>Die verwendete Sprache im Skript ist jedoch frei w\u00e4hlbar.<\/div>\n<div>Eben jene flexible aber gleichzeitig sicherheitsorientierte Funktionalit\u00e4t wird vom Hersteller <em>Red Hat<\/em> beworben. Die Sicherheitsorientierung manifestiert sich in der ausschlie\u00dflichen Nutzung von SSH-Verbindungen und dem Verzicht auf Agenten (Ansible ist agentless). Dies bedeutet, dass keine weitere Software auf den zu kontrollierenden Systemen installiert werden muss, um Ansible nutzen zu k\u00f6nnen.<\/div>\n<div>(vgl. Quelle[3])<\/div>\n<div><\/div>\n<div>Das Einsatzgebiet von Ansible ist dabei vielf\u00e4ltig. Von Netzwerkmanagement \u00fcber Konfigurationsmanagement bis zur Automatisierung einer Cloud- oder Edgeumgebung sowie von Securitysystemen, ist mit diesem Werkzeug alles m\u00f6glich.<\/div>\n<div><\/div>\n<h3>Merkmale<\/h3>\n<div>Das Grundger\u00fcst innerhalb der Automatisierung sind die sogenannten Module.<\/div>\n<div>Innerhalb eines einzelnen Moduls befinden sich verschiedene <em>Playbooks<\/em>.<\/div>\n<div>Diese sind in YAML verfasst, also einer einsteigerfreundlichen und leicht lesbaren Sprache.<\/div>\n<div>Solche Module k\u00f6nnen sowohl selbst geschrieben, als auch als vorgefertigte und etablierte L\u00f6sungen genutzt werden.<\/div>\n<div>Eine Eigenschaft dieser Architektur ist die F\u00e4higkeit, dass diese Module einzeln, in einer Reihenfolge und\/oder multipel ausgef\u00fchrt werden k\u00f6nnen &#8211; je nachdem wie sie in den <em>Playbooks<\/em>\u00a0konfiguriert werden.<\/div>\n<div>Prinzipiell kann festgehalten werden, dass die Gestaltung einer Automatisierung mittels Ansible nicht ohne die dazugeh\u00f6rigen Plattformen stattfinden kann.<\/div>\n<div>Nachfolgend sind all diese Komponenten &#8211; wie sie von <em>Red Hat<\/em>\u00a0bezeichnet werden &#8211; tabellarisch aufgelistet und kurz beschrieben.<\/div>\n<div>Den Beginn der Tabelle stellt mit <em>Ansible Core<\/em>\u00a0die Hauptanwendung dar.<\/div>\n<div><\/div>\n<div><strong>Automatation Plattform:<\/strong><\/div>\n<div><\/div>\n<div><strong>Ansible Core<\/strong><\/div>\n<div>Hauptanwendung, welche alle grundlegenden Automatisierungsfunktionen bereitstellt.<\/div>\n<div><strong>Automatisierungssteuerung<\/strong><\/div>\n<div>Eine Steuerungsebene mit Benutzeroberfl\u00e4che, welche zur Standardisierung der Funktionen Bereitstellung, Initiieren und \u00dcberpr\u00fcfen von Automatisierungen verwendet wird.<\/div>\n<div><strong>Automatisierungs-Ausf\u00fchrungsumgebungen<\/strong><\/div>\n<div>Container als portable Ausf\u00fchrungsumgebungen von Ansible Playbooks und Roles.<\/div>\n<div><strong>Automatisierungsnetz<\/strong><\/div>\n<div>Skalierung von Gruppen, Plattformen und Netzwerktopologien. Verhilft dem System eine h\u00f6here Ausfallsicherheit zu etablieren und die Automatisierung an sich zu standardisieren. Eine graphische Visualisierung der Topologie ist ebenfalls m\u00f6glich.<\/div>\n<div><strong>Ansible Content Sammlungen<\/strong><\/div>\n<div>Sammlung vertrauensw\u00fcrdiger Bausteine flexibler Automatisierungsinhalte, f\u00fcr eine Vielzahl von Anwendungsf\u00e4llen.<\/div>\n<div><strong>Automatisierungs-Hub<\/strong><\/div>\n<div>Eine Plattform zum z\u00fcgigen Finden und\/oder Anpassen von geeigneten Inhalten von <em>Red Hat<\/em>\u00a0oder seinen Technologiepartnern. Ebenfalls als private Version verf\u00fcgbar, um eine lokale Instanz zu besitzen.<\/div>\n<div><strong>Ansible Content Tools<\/strong><\/div>\n<div>Zur Erstellung und Verwaltung von Ausf\u00fchrungsumgebungen verwendbar.<\/div>\n<div><strong>Red Hat Insights f\u00fcr Red Hat Ansible Automation Platform<\/strong><\/div>\n<div>Reihe von Dashboards zur \u00dcberwachung der Automatisierungsarchitektur, welche von den Leitern an die Teams abgegeben wurden. Es berechnet Vorhersagen bez\u00fcglich Zeit- und Kosteneinsch\u00e4tzung und m\u00f6glichen Einsparungen z.B. bei den Teamgr\u00f6\u00dfen und Strukturen.<\/div>\n<div>Ebenfalls wird die Visualisierung von der Infrastruktur bereitgestellt, womit sich eine Bewertung vereinfacht.<\/div>\n<div><strong>Katalog f\u00fcr Automatisierungsdienste <\/strong><\/div>\n<div>Spezielle Produkte von Drittherstellern zur Automatisierung .<\/div>\n<div><\/div>\n<div>F\u00fcr die Kurzbeschreibung, vgl. Quelle[4]<\/div>\n<div><\/div>\n<h3>Installation\/Einrichtung<\/h3>\n<div>Mit Ansible k\u00f6nnen mehrere Hosts (Rechner, Server,&#8230;) von einem Kontrollsystem verwaltet und gesteuert werden. Um Ansible in der kostenlosen Variante verwenden zu k\u00f6nnen, muss es auf dem Kontrollsystem (control node) installiert werden. Da Ansible agentless agiert, muss es nicht auf den Hostsystemen (managed nodes) eingerichtet werden. F\u00fcr die Nutzung m\u00fcssen SSH sowie Python ab Version 2.7 bzw. 3.5 vorhanden sein.<\/div>\n<div>Auf dem control node wird Python ab Version 3.8 (Ansible Core 2.12) bzw. Python 3.9 (Ansible Cor 2.14) ben\u00f6tigt. Die Installation kann mittels eines Paketverwaltungstools wie pip:<\/div>\n<blockquote>\n<div>\u00a0 python3 -m pip install &#8211;user ansible<\/div>\n<\/blockquote>\n<div>oder conda:<\/div>\n<blockquote>\n<div>\u00a0 conda install -c conda-forge ansible<\/div>\n<\/blockquote>\n<div>erfolgen.<\/div>\n<div>F\u00fcr macOS kann zus\u00e4tzlich die Paketverwaltung Homebrew:<\/div>\n<blockquote>\n<div>brew install ansible<\/div>\n<\/blockquote>\n<div>verwendet werden.<\/div>\n<div><\/div>\n<div>Unter Windows ist Ansible nativ nicht nutzbar, kann jedoch \u00fcber einen Umweg mittels WSL (Windows Subsystem for Linux) wie oben beschrieben eingerichtet und angewendet werden.<\/div>\n<div>Nach der Installation von Ansible auf dem Kontrollsystem muss gegebenenfalls noch ein SSH-Schl\u00fcsselpaar erstellt und der Public Key des control node bei den managed nodes hinterlegt werden.<\/div>\n<div>Anschlie\u00dfend kann die Konfigurationsdatei ansible.cfg erstellt\/angepasst werden. In ihr sind grundlegende Einstellungen von Ansible, wie z.B. Quellen f\u00fcr managed nodes, Log-Verhalten oder die Verwendung von Plugins festgelegt. Ansible Inventories sind Dateien, in denen die managed nodes aufgelistet werden, die f\u00fcr bestimmte Vorhaben angesprochen werden sollen. Mit ihrer Hilfe k\u00f6nnen verschiedene Gruppen f\u00fcr verschiedene Aufgaben angelegt werden.<\/div>\n<div><\/div>\n<h3>Nutzung<\/h3>\n<div>Um Ansible zu nutzen, k\u00f6nnen entweder Befehle direkt in der CLI, also ad-hoc, angegeben werden oder Playbooks definiert werden.<\/div>\n<div><\/div>\n<div><strong>Inventory<\/strong><\/div>\n<div>Das Inventory wird in YAML spezifiziert. Hier werden Gruppen, oder auch pattern, von verschiedenen Servern\/Rechnern festgelegt. Es wird f\u00fcr jede Gruppe ein Gruppenname vergeben. Hierbei k\u00f6nnen Gruppenzugeh\u00f6rigkeiten vererbt werden, bzw. eine Adresse auch in unterschiedlichen Gruppen vorkommen.<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2123 alignnone\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/inventory.png\" alt=\"\" width=\"285\" height=\"386\" \/><\/div>\n<div><\/div>\n<div>Hierbei sind &#8222;webservers&#8220;, &#8222;databases&#8220; und &#8222;dummygroup&#8220; die jeweiligen Gruppennamen zu den Hosts.<\/div>\n<div>Es ist ebenfalls m\u00f6glich Host-Ranges, also eine gro\u00dfe Anzahl an Hosts mit \u00e4hnlichem Namen festzulegen, Variablen im Inventory anzulegen sowie mehrere Inventory-Dateien zu verwenden.<\/div>\n<div><\/div>\n<div><strong>Ad-hoc Befehle:<\/strong><\/div>\n<div>Sie k\u00f6nnen direkt \u00fcber die Konsole ausgef\u00fchrt werden und sind n\u00fctzlich, um schnell kleinere Anpassungen auf den verwalteten nodes vorzunehmen.<\/div>\n<div>Es bietet sich an, diese Funktionalit\u00e4t f\u00fcr Aufgaben zu nutzen, die man selten ausf\u00fchren muss, oder die nur aus einem Befehl bestehen, wie z.B. Server-reboots:<\/div>\n<blockquote>\n<div>ansible postgres -a &#8222;\/sbin\/reboot&#8220;<\/div>\n<\/blockquote>\n<div>Wobei &#8222;postgres&#8220; eine Gruppe von Servern ist und &#8222;\/sbin\/reboot&#8220; die Moduloption, die f\u00fcr den Neustart genutzt werden soll.<\/div>\n<div><\/div>\n<div><strong>Ansible Playbooks:<\/strong><\/div>\n<div>Playbooks sind organisierte Einheiten von wieder ausf\u00fchrbaren Skripten zum Verwalten von Serverkonfigurationen.<\/div>\n<div>Durch Playbooks k\u00f6nnen jegliche manuelle Prozesse auf mehreren Maschinen orchestriert, sowie Prozesse synchron oder asynchron gestartet werden.<\/div>\n<div>Ein Playbook wird im YAML-Format spezifiziert.<\/div>\n<div>Dieses besteht aus einer Liste an Plays. Solche Plays sind Zuordnungen einer Reihe an managed nodes mit bestimmten Aufgaben (&#8222;tasks&#8220;).<\/div>\n<div>Playbook Anatomie mit 2 Plays:<\/div>\n<div>Beispiel (https:\/\/docs.ansible.com\/ansible\/latest\/playbook_guide\/playbooks_intro.html):<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2124\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/playbook.png\" alt=\"\" width=\"443\" height=\"598\" \/><\/div>\n<div><\/div>\n<div>Ansible Playbooks bzw. deren Plays werden durch verschiedene Schl\u00fcsselw\u00f6rter konfiguriert.<\/div>\n<ul>\n<li>Dabei signalisiert &#8222;&#8212;&#8220; den Start und das Ende eines Playbooks.<\/li>\n<li>&#8222;name&#8220; definiert immer einen String, der beim Ausf\u00fchren des Plays ausgegeben wird.<\/li>\n<li>&#8222;hosts&#8220; bestimmt die Zielmaschinen durch eine oder mehrere Gruppen bzw. Host-Patterns. Im Beispiel ist &#8222;hosts&#8220; mit den Gruppen &#8218;webservers&#8216; f\u00fcr den ersten bzw. &#8218;databases&#8216; f\u00fcr den zweiten task konfiguriert, welche eine Gruppe an Maschinen beschreibt.<\/li>\n<li>&#8222;remote_user&#8220; legt die Bezeichnung der aktuellen Maschine bzw. des Root-Users fest, auf dem das Playbook ausgef\u00fchrt wird.<\/li>\n<li>&#8222;tasks&#8220; signalisiert den Anfang eines neuen Plays im Playbook. F\u00fcr tasks gibt es auch verschiedene Schl\u00fcsselw\u00f6rter:\n<ul>\n<li>&#8222;name&#8220; definiert hier auch einen String, der beim Ausf\u00fchren des tasks ausgegeben wird.<\/li>\n<li>Weiters wird hier ein Modul angegeben, welches genutzt werden soll. Z.B. &#8218;yum&#8216;, das die Versionierung von Paketen verwaltet. An diesem Punkt wird durch das Schl\u00fcsselwort &#8222;name&#8220; die, vom Modul, zu betrachtende Komponente angegeben und hat somit eine andere Bedeutung als zuvor.<\/li>\n<li>&#8222;state&#8220; definiert auch Parameter f\u00fcr das Modul. F\u00fcr &#8218;yum&#8216; wird im Beispiel die Zielversion von &#8218;postgres&#8216; angegeben.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div><strong>Versionierung mit Git:<\/strong><\/div>\n<div>Durch Ansible k\u00f6nnen au\u00dferdem Aktionen mit Git durchgef\u00fchrt werden.<\/div>\n<div>Die Syntax f\u00fcr Git-Konfigurationen ist analog zur YAML-Struktur der bereits genannten Playbooks:<\/div>\n<ul>\n<li>&#8222;name&#8220; definiert die Anzeigen beim Ausf\u00fchren des tasks.<\/li>\n<li>&#8222;ansible.builtin.git&#8220; bestimmt die Nutzung des ansible-core Git-Moduls, um mit Git zu interagieren.<\/li>\n<li>&#8222;repo&#8220; legt das zu nutzende Repository fest.<\/li>\n<li>&#8222;dest&#8220; ist das Schl\u00fcsselwort f\u00fcr den lokalen Dateipfad der Daten, die Git ablegt bzw. benutzt.<\/li>\n<\/ul>\n<div>Beispiel:<\/div>\n<div>Git Checkout:<\/div>\n<blockquote>\n<div>&lt;pre&gt;-name: Git checkout<\/div>\n<div>ansible.builtin.git:<\/div>\n<div>repo: &#8218;https:\/\/foosball.example.org\/path\/to\/repo.git&#8216;<\/div>\n<div>dest: \/srv\/checkout<\/div>\n<div>version: release-0.22&lt;\/pre&gt;<\/div>\n<\/blockquote>\n<div>Quelle[6]<\/div>\n<div><\/div>\n<h3>Anwendungsbeispiel<\/h3>\n<div>Ein Unternehmen hat einen neuen Auftrag zur Erstellung einer Software erhalten. Daf\u00fcr soll ein neues Team mit neuen Rechnern ausgestattet werden. Der Projektleiter f\u00fcr die Softwareentwicklung hat die Rahmenbedingungen f\u00fcr die Entwicklung definiert. Die Teamgr\u00f6\u00dfe wurde auf zehn Entwickler festgelegt und die ben\u00f6tigte Hardware ist bereits eingetroffen. Zum Einrichten der Ger\u00e4te gibt er die Spezifikationen f\u00fcr die Rollenverteilungen, die Rechte der Entwickler, die ben\u00f6tigte Software und das anschlie\u00dfende Updateverhalten installierter Software an den zust\u00e4ndigen Administrator weiter. Dieser erstellt aus den vorliegenden Informationen die n\u00f6tigen Gruppen f\u00fcr die Inventories. Alle Entwickler arbeiten mit der gleichen Software, daher wird daf\u00fcr nur ein Inventory ben\u00f6tigt. Zwei Mitglieder agieren als Teamleiter und ben\u00f6tigen mehr Rechte f\u00fcr die Verwaltung des Repositories. Daf\u00fcr sind zwei verschiedene Gruppen f\u00fcr die Rechte n\u00f6tig. Insgesamt erstellt der Administrator drei Gruppen (Inventories) und schreibt die Playbooks f\u00fcr Ansible zur Softwareinstallation, Rechteverteilung und Updateverhalten. Anschlie\u00dfend f\u00fchrt er das Playbook zum Deploy der Software f\u00fcr alle Entwickler aus. Zum Schluss werden die definierten Rechte f\u00fcr die zwei verschiedenen Gruppen eingestellt.<\/div>\n<div>Durch die Automatisierung der Einrichtung der Ger\u00e4te musste der Administrator diese Arbeit nur einmal in den Playbooks definieren, anstatt zehnmal von Hand alle Anforderungen umzusetzen.<\/div>\n<div>Nach einem Monat stellt der Projektleiter fest, dass noch drei weitere Entwickler n\u00f6tig sind. Der Administrator erweitert die jeweiligen Gruppen um die Neuzug\u00e4nge und kann seine Playbooks f\u00fcr die neuen Ger\u00e4te erneut ausf\u00fchren.<\/div>\n<div>Neben der Zeitersparnis f\u00fcr den Administrator schafft die Automatisierung eine homogene Entwicklungsumgebung in der alle Entwickler mit den gleichen Versionen ihrer Programme arbeiten k\u00f6nnen.<\/div>\n<div>Abbildung 1 zeigt eine m\u00f6gliche Prozessmodellierung f\u00fcr das Anwendungsbeispiel.<\/div>\n<div><\/div>\n<div>\n<a href=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/BPMN_Ansible.png\" target=\"_blank\" rel=\"noopener\"><\/p>\n<div>\n    <img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2125 size-full\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2022\/12\/BPMN_Ansible.png\" alt=\"\" width=\"1222\" height=\"864\" \/><\/p>\n<div>Abbildung 1: Prozessmodellierung<\/div>\n<\/div>\n<p><\/a><\/p>\n<div><\/div>\n<h3>Konkurrenz<\/h3>\n<div>Zwei Alternativen zu Ansible sind z.B. Chef und Puppet.<\/div>\n<div>Puppet wurde bereits 2005 ver\u00f6ffentlicht und Chef betrat 2009 die B\u00fchne der Automatisierungstools.<\/div>\n<div>Im Gegensatz zu Ansible ben\u00f6tigen beide tools einen Agenten auf jedem zu verwaltenden System (Puppet-Agent und Chef-Client). \u00dcber diese Agenten k\u00f6nnen die Systeme Aktualisierungen vom Hauptsystem abfragen und ausf\u00fchren. Dies kann als Pull-Configuration bezeichnet werden, w\u00e4hrend Ansible mit Push-Configuration aktiv die managed nodes anspricht.<\/div>\n<div>Wie die Playbooks in Ansible, nutzt Chef Rezepte f\u00fcr Sammlungen von Befehlen und Zuweisungen. Um diese Dateien zu erstellen sind jedoch Kenntnisse in Ruby DSL n\u00f6tig.<\/div>\n<div>Alle drei tools geh\u00f6ren zu den am weitest verbreiteten Automatisierungswerkzeugen im Bereich Infrastructure as Code.<\/div>\n<div><\/div>\n<h3>Fazit<\/h3>\n<div>Ansible ist ein Automatisierungswerkzeug, das die Verwaltung und Administration mehrerer Systeme durch ein Kontrollsystem erm\u00f6glicht.<\/div>\n<div>Ansible ist agentless, das hei\u00dft auf den zu kontrollierenden Systemen ist keine Installation f\u00fcr die Nutzung notwendig. Voraussetzung f\u00fcr die Nutzung sind SSH und Python. F\u00fcr die Verwendung von Ansible muss keine Programmiersprache erlernt werden. Die Ausf\u00fchrung kann mittels Ad-hoc Befehlen \u00fcber die Kommandozeile erfolgen. F\u00fcr umfangreichere Vorhaben k\u00f6nnen Playbooks erstellt werden. Dies sind Dateien, in denen Befehle und Zuweisungen im YAML-Format, einer leicht lesbaren Sprache, kombiniert werden k\u00f6nnen.<\/div>\n<div>All diese Punkte machen Ansible zu einem schnell zu erlernenden Werkzeug, das mit wenig Aufwand und geringen Anforderungen an die Infrastruktur die Automatisierung verschiedener Aufgaben erm\u00f6glicht.<\/div>\n<div><\/div>\n<h3>Quellenverzeichnis<\/h3>\n<div>[1] <a href=\"https:\/\/opensource.com\/resources\/what-ansible\">https:\/\/opensource.com\/resources\/what-ansible<\/a>\u00a0(12.11.2022)<\/div>\n<div>[2] <a href=\"https:\/\/www.ansible.com\/products\/automation-platform\">https:\/\/www.ansible.com\/products\/automation-platform<\/a>\u00a0(12.11.2022)<\/div>\n<div>[3] <a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/installation_guide\/intro_installation.html#managed-node-requirements\">https:\/\/docs.ansible.com\/ansible\/latest\/installation_guide\/intro_installation.html#managed-node-requirements<\/a>\u00a0(18.11.2022)<\/div>\n<div>[4]\u00a0<a href=\"https:\/\/www.redhat.com\/en\/resources\/ansible-automation-platform-datasheet\">https:\/\/www.redhat.com\/en\/resources\/ansible-automation-platform-datasheet<\/a>\u00a0(18.11.2022)<\/div>\n<div>[5] <a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/collections\/ansible\/builtin\/yum_module.html#parameters\">https:\/\/docs.ansible.com\/ansible\/latest\/collections\/ansible\/builtin\/yum_module.html#parameters<\/a>\u00a0 (18.11.2022)<\/div>\n<div>[6] <a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/collections\/ansible\/builtin\/git_module.html#examples\">https:\/\/docs.ansible.com\/ansible\/latest\/collections\/ansible\/builtin\/git_module.html#examples<\/a>\u00a0(18.11.2022)<\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Zur Verwaltung von Rechnernetzen, Serverclustern oder Umgebungen die aus mehreren Rechnern bestehen, k\u00f6nnen nur mit gro\u00dfem Aufwand alle Einstellungen manuell<\/p>\n","protected":false},"author":94,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-2121","post","type-post","status-publish","format-standard","hentry","category-betriebliche-informationssysteme"],"_links":{"self":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/2121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/users\/94"}],"replies":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/comments?post=2121"}],"version-history":[{"count":16,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/2121\/revisions"}],"predecessor-version":[{"id":2838,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/2121\/revisions\/2838"}],"wp:attachment":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/media?parent=2121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/categories?post=2121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/tags?post=2121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}