{"id":20969,"date":"2015-03-16T12:42:35","date_gmt":"2015-03-16T11:42:35","guid":{"rendered":"https:\/\/www.inovex.de\/\/?p=189"},"modified":"2015-03-16T12:42:35","modified_gmt":"2015-03-16T11:42:35","slug":"rex-1-0-das-automatisierungs-tool-unter-der-lupe","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/","title":{"rendered":"Rex 1.0: Das Automatisierungs-Tool unter der Lupe"},"content":{"rendered":"<p>Bei der heutigen Zahl an Systemen und darauf laufender Anwendungen in einer IT-Abteilung ist deren manuelle Verwaltung keine ernsthafte Option mehr f\u00fcr Systemverwalter. Parallelausf\u00fchrung von Skripten, Konfigurationsmanagement und Deploymentwerkzeuge sind die Antworten des Zeitalters der Automation. Rex ist die Synthese dieser drei Ans\u00e4tze. Jetzt ist nach gut vier Jahren die Version 1.0 erschienen.<!--more--><\/p>\n<p>Wer die Herausforderungen der Verwaltung komplexer IT-Landschaften verstehen will, muss ein wenig in die Geschichte dieser Disziplin schauen: Operateure setzten sich direkt vor die betroffenen Computer und warteten mittels Handbuch und Erfahrung die Systeme und die dort laufenden Anwendungen. Gerade in gut klimatisierten Rechenzentren war das oft ein unbeliebter Job.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#Ausflug-in-die-Geschichte-Vom-Operateur-zum-System-Engineer\" >Ausflug in die Geschichte: Vom Operateur zum System Engineer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#Vertikale-und-horizontale-Skalierbarkeit\" >Vertikale und horizontale Skalierbarkeit<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#Transparenz-und-Wiederholbarkeit\" >Transparenz und Wiederholbarkeit<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#Abstraktion-in-der-Konfiguration-sichert-gegen-Silo-Wissen-ab\" >Abstraktion in der Konfiguration sichert gegen Silo-Wissen ab<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#Ein-Standard-muss-her\" >Ein Standard muss her<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#Perl-Kenntnisse-nuetzen-beim-Einsatz-sind-aber-keine-Voraussetzung\" >Perl-Kenntnisse n\u00fctzen beim Einsatz, sind aber keine Voraussetzung<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#Support-und-Features-rechtfertigen-den-Versionssprung-auf-Rex-10\" >Support und Features rechtfertigen den Versionssprung auf Rex 1.0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#Interview-Fuenf-Ziele-fuer-Rex-2\" >Interview: F\u00fcnf Ziele f\u00fcr Rex 2<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Ausflug-in-die-Geschichte-Vom-Operateur-zum-System-Engineer\"><\/span>Ausflug in die Geschichte: Vom Operateur zum System Engineer<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Im Zuge der voranschreitenden Vernetzung war die gleiche T\u00e4tigkeit pl\u00f6tzlich aus einem B\u00fcro von einem Terminal oder PC mittels Netzwerkverbindung m\u00f6glich. Operateure nannte man nun Systemadministratoren. Ihre Werkzeuge nannten sie nun Telnet oder sp\u00e4ter SSH, aber die T\u00e4tigkeiten \u00e4hnelten immer noch denen der Vergangenheit: Sie loggten sich \u00fcber das Netz auf dem Zielsystem ein, erlangten dort Administratorrechte und warteten die Software. Das konnte das Anpassen von Konfigurationen umfassen, das \u00dcberwachen von Logfiles oder den Neustart von abgest\u00fcrzten Anwendungen.<\/p>\n<p>In Zeiten, in denen Verf\u00fcgbarkeit eine wesentliche Rolle spielt, ist diese Art der Systemadministration jedoch kaum noch realisierbar: Die Zahl der einzelnen Anwendungen steigt mit den immer komplexeren Aufgaben, die die IT erbringt. Systemarchitekten nennen den Effekt vertikale Skalierbarkeit. Hier setzt Rex an, ein als Open-Source-Projekt entwickeltes Framework, das ein gutes Dutzend Entwickler rund um Projektleiter Jan Gehring entworfen haben. Der moderne System Engineer hat mit Rex eine Umgebung, mit der er anwendungsbezogen an zentraler Stelle die Schritte ablegt, die zur Konfiguration und Verwaltung notwendig sind.<\/p>\n<p>Neben der vertikalen Skalierbarkeit besch\u00e4ftigt Systemverwalter aber auch die Zahl der zu verwaltenden Instanzen. Seitdem Virtualisierung popul\u00e4r und produktionsreif ist, schnellt diese n\u00e4mlich zus\u00e4tzlich in die H\u00f6he. Wo fr\u00fcher ein Webserver das Unternehmen im Netz repr\u00e4sentierte, k\u00fcmmert sich in Zeiten des Cloud Computing oft ein ganzer Schwarm von gleichartigen Frontends, Applikationsservern und Datenbanken um die Entgegennahme von Kundenanfragen und Bestellungen. Diese zweite Dimension des Wachstums nennen die Systemplaner horizontale Skalierbarkeit.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Vertikale-und-horizontale-Skalierbarkeit\"><\/span>Vertikale und horizontale Skalierbarkeit<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Rex adressiert diese Herausforderung dadurch, dass es seine Anleitungen, Rexfiles genannt, nicht zwingend auf einen konkreten Host anwendet, sondern stattdessen auf abstrakte Hostgruppen. Die lassen sich dann zentral mit den dazu notwendigen Benutzernamen, Passw\u00f6rtern und Zertifikaten verwalten. Zur Kommunikation zwischen der Kommandozentrale und den gemanagten Hosts greift Rex auf den kleinsten gemeinsamen Nenner der vernetzten Systemadministration zur\u00fcck und verbindet sich per SSH auf die einzelnen Hosts. Dabei kapselt das Werkzeug aber die konkrete \u00dcbertragung. Wie seine Rexfiles ausgef\u00fchrt werden und wo, das braucht der System Engineer gar nicht zu ber\u00fccksichtigen, wenn er die Anleitungen schreibt.<\/p>\n<p>Konfigurationsmanagementsysteme sind umso flexibler, je geringere Anspr\u00fcche sie an die betreuten Nodes stellen. Sind dort irgendwelche Agents, Daemons oder Plugins notwendig, dann m\u00fcssen diese zumindest initial den Weg auf die Nodes finden und dort dauerhaft laufen. Rex umschifft dieses Problem mit einem Kniff: Da auf jedem Node meist ohnehin ein SSH-Zugang f\u00fcr den Admin oder die Anwender existiert, nutzt es diesen Weg gleich mit. Als einzige weitere Anforderung muss auf den verwalteten Nodes ein Perl-5-Interpreter vorhanden sein \u2013 den bringt praktisch jede Linux-Distribution heute mit. Dauerhaft laufende Software oder ein wartender Daemon sind bei Rex nicht notwendig.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Transparenz-und-Wiederholbarkeit\"><\/span>Transparenz und Wiederholbarkeit<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Buchhaltung, Controlling und rechtliche Verordnungen erfordern \u00fcber die Skalierbarkeit hinaus auch ein definiertes Ma\u00df an Nachvollziehbarkeit: Wer einst dem verschrobenen Operateur im Serverraum all seine Daten in die H\u00e4nde gelegt hat und darauf vertraute, dass dieser sein Handwerk verst\u00fcnde, so sind heute transparentere Ma\u00dfnahmen n\u00f6tig: IT-Sicherheitsrichtlinien fordern, dass \u00c4nderungen an der Software protokolliert und nachvollziehbar geschehen, um so im schlimmsten Fall Manipulationen zu verfolgen.<\/p>\n<p>Wer also heute moderne Anwendungsumgebungen entwerfen und betreiben m\u00f6chte, muss diese Anfroderungen ber\u00fccksichtigen. Zun\u00e4chst behalfen sich Administratoren damit, wiederkehrende Arbeiten in Skripten zusammenzufassen. Ein Beispiel: Die Schritte, eine Datenbank herunterzufahren, ihre Inhalte in einer Datei zu sichern, die Datenbank wieder hochzufahren und die Sicherung in komprimierter Form im Backup zu archivieren, lassen sich gut in zwanzig Zeilen Code formulieren.<\/p>\n<p>Doch solche Skripte haben ihre eigenen Probleme: Jeder Sysadmin schreibt nach seinem eigenen Stil und geht oft von Voraussetzungen aus, die nach einiger Zeit nicht mehr gelten, etwa hinsichtlich der Namen von Verzeichnissen oder Computern. Weiterhin gilt es, diese Skripte von einer Kommandozentrale auf vielen Rechnern gleichzeitig auszuf\u00fchren. Auch das l\u00e4sst sich skripten, aber schnell wird die Administration so zu einem unentwirrbaren Kn\u00e4uel aus Aufrufen, die nur bedingt miteinander harmonieren.<\/p>\n<p>Dazu kommt, dass manche Aufgaben zwar vordergr\u00fcndig einfach zu realisieren sind, in der Realit\u00e4t aber, wenn sie umsichtig implementiert werden, immer wieder die gleichen Schritte erfordern. Beispiele sind das Liefern von Returncodes, das Aufr\u00e4umen von Tempor\u00e4rdateien oder die Besonderheiten beim Arbeiten \u00fcber eine verschl\u00fcsselte Verbindung.<\/p>\n<p>Au\u00dferdem benennen die einzelnen Linux-Distributionen manche Datei oder manches Verzeichnis etwas unterschiedlich: Wer einen Apache-Webserver installiert, findet dessen Konfigurationsdateien unter Red Hat Enterprise Linux, CentOS oder Fedora unter dem Pfad <span class=\"lang:sh decode:true crayon-inline \">\/etc\/httpd<\/span>. Auf einem Debian- oder Ubuntu-System liegen diese im Verzeichnis <span class=\"lang:sh decode:true crayon-inline \">\/etc\/apache2<\/span>. Manche Systeme konfigurieren ihre Netzwerkinterfaces mit dem Kommando <span class=\"lang:sh decode:true crayon-inline \">ifconfig<\/span>, andere mit dem neueren <span class=\"lang:sh decode:true crayon-inline \">ip<\/span>. Um ein Paket zu installieren verwendet OpenSuse das Tool zypper, Distributionen aus dem Haus Red Hat yum und die Debian-Welt aptitude.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Abstraktion-in-der-Konfiguration-sichert-gegen-Silo-Wissen-ab\"><\/span>Abstraktion in der Konfiguration sichert gegen Silo-Wissen ab<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Diese Vielfalt b\u00e4ndigt Rex dadurch, dass es mit einem Modulsystem die wichtigsten Aufgaben abstrahiert. Auf der Website <a href=\"http:\/\/rexify.org\" target=\"_blank\" rel=\"noopener\">rexify.org<\/a> finden sich mehrere Dutzend Plugins, die zum Beispiel die Arbeit mit Logfiles, Datenbanken, Hypervisoren oder Firewalls vereinfachen.<\/p>\n<p>Obwohl schon vor dem Bau des ersten Computers die Informatikpioniere Church und Turing nahelegten, dass alle Programmiersprachen im Ergebnis gleichartig w\u00e4ren, hielt das die Architekten von Programmiersprachen nicht auf, ein neues Babylon zu schaffen: Heute gibt es Dutzende von Programmiersprachen. Im Feld des Konfigurationsmanagements ist eine \u00e4hnliches Ph\u00e4nomen zu beobachten.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Ein-Standard-muss-her\"><\/span>Ein Standard muss her<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Bei manchen Werkzeugen beschreibt der System Engineer nur, wie er sich seine Zielarchitektur vorstellt. Der Hersteller solcher Software liefert Regeln mit, wie sich solche Ziele umsetzen lassen. Die Herausforderung solcher deklarativer Beschreibungen ist nur, dass sie sehr pr\u00e4zise sein m\u00fcssen. Weiterhin m\u00fcssen die Anbieter f\u00fcr viele F\u00e4lle schon Regeln mitliefern oder vorsehen, dass diese leicht nachzur\u00fcsten sind.<\/p>\n<p><a href=\"http:\/\/puppetlabs.com\" target=\"_blank\" rel=\"noopener\">Puppet<\/a> ist ein Vertreter dieser Fraktion. Das weit verbreitete Framework stellt eine eigene Domain Specific Language (DSL) bereit, die deklarativ beschreibt, wie ein mit Puppet verwaltetes System aussehen soll. Wie die einzelnen Computer dies erreichen sollen, klammert Puppet dabei aus. Durch diesen Ansatz ist die Sprache anfangs nicht ganz einfach zu erlernen und f\u00fchrt daher manchmal zu \u00dcberraschungen.<\/p>\n<p>Rex nutzt hier einen deutlich pragmatischeren Ansatz: In seinen Rexfiles gibt der Systemverwalter pro Aufgabe Schritt f\u00fcr Schritt an, was zu tun ist. Dabei kann er prinzipiell Perl als Programmiersprache verwenden, auch wenn das in den meisten F\u00e4llen keine gute Idee und auch nur selten n\u00f6tig ist. Denn Rex liefert durch seine Module eine ganze Reihe von praktischen Kommandos gleich mit. Wie diese Aufgaben in konkrete Befehle auf den Zielsystemen umgesetzt werden, findet das Framework selbstst\u00e4ndig zur Laufzeit heraus.<\/p>\n<p>Dieser imperative Ansatz beschert Rex auch eine Sonderstellung im Konfigurationsmanagement, denn es lassen sich damit auch Deploymentaufgaben erledigen. Bei ersterem tut nur dann etwas, wenn sich an der grunds\u00e4tzlichen Systemumgebung etwas \u00e4ndert. Das ist beispielsweise der Fall, wenn eine Anwendung nun mehr Speicherplatz erhalten soll oder eine IP-Adresse sich \u00e4ndert.<\/p>\n<p>Manche Umgebungen meinen das gel\u00f6st zu haben, indem es ausreicht, eine Datei im richtigen Verzeichnis abzulegen. In der Realit\u00e4t sind trotzdem oft viele zus\u00e4tzliches T\u00e4tigkeiten n\u00f6tig: So l\u00e4dt ein Deployment vielleicht einen initialen Datensatz, konvertiert ihn zum Gebrauch der Anwendung, holt dann erst die \u00fcberarbeitete Software aus einem Repository, f\u00fchrt einige Tests durch und aktiviert bei deren Erfolg die neue Revision.<\/p>\n<p>Aus diesem Grund ist Rex auch ein guter Kompagnon von Build- und CI-Tools wie beispielsweise Jenkins. Sobald dort eine neue Fassung einer Anwendung fertig und getestet ist, kann Jenkins Rex aufrufen und die Software installieren.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Perl-Kenntnisse-nuetzen-beim-Einsatz-sind-aber-keine-Voraussetzung\"><\/span>Perl-Kenntnisse n\u00fctzen beim Einsatz, sind aber keine Voraussetzung<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Die Mischung aus Pragmatismus und Vereinheitlichung tr\u00e4gt zur Beliebtheit von Rex hinzu: Auch etwas kniffligere Datentransformationen lassen sich mit Regular Expressions, dem riesigen Angebot der CPAN-Module in objektorientierter Notation formulieren, und dennoch sind einfache Aufgaben pr\u00e4zise und knapp formulierbar. Das wei\u00df die wachsende Community von Anwendern und Entwicklern zu sch\u00e4tzen. Gut ein Dutzend Aktive steuern regelm\u00e4\u00dfig Code bei.<\/p>\n<p>Die Rex-Entwickler sind regelm\u00e4\u00dfig auf Konferenzen unterwegs und stellen das Werkzeug dort vor. Die n\u00e4chsten Stationen nach den Kieler Linux Tagen, dem LinuxTag 2014 in Berlin, dem Nordic Perl Workshop in Helsinki und einigen weiteren Konferenzen und Meetups sind bereits in Planung.<\/p>\n<p>Rex gibt es seit Ende 2010. Urspr\u00fcnglich konnte es nur Dateien mit <span class=\"lang:sh decode:true crayon-inline \">upload<\/span> auf Nodes hochladen und Shellbefehle mit <span class=\"lang:sh decode:true crayon-inline \">run<\/span> ausf\u00fchren, um Webanwendungen im Java- sowie Ruby-On-Rails Umfeld nachvollziehbar auf mehreren Systemen zu deployen. In 55 Releases hat sich seither eine Menge getan. Das betrifft vor allem die Abstraktion von typischen Objekten wie Dateien, Templates, Verzeichnissen, Berechtigungen oder Firewall-Regeln, mit denen Admins regelm\u00e4\u00dfig umgehen. Aber auch das Anbinden an Cloud-Dienste oder der Einsatz einer unabh\u00e4ngigen und versionierbaren Konfigurationsdatenbank (CMDB) markieren wichtige Meilensteine der Entwicklung.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Support-und-Features-rechtfertigen-den-Versionssprung-auf-Rex-10\"><\/span>Support und Features rechtfertigen den Versionssprung auf Rex 1.0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Anfang M\u00e4rz ist nun Rex 1.0 erschienen. Weil die Entwickler nach dem Prinzip der semantischen Versionierung arbeiten, versprechen sie, die \u00f6ffentliche Schnittstelle, das Rex-API, in dieser Version nicht mehr zu ver\u00e4ndern. Die Entwickler gehen sogar noch einen Schritt weiter und erheben die Version 1.0 zu einem LTS-Release (Long Term Support), das sie bis M\u00e4rz 2017 mit Bugfixes versorgen wollen. Das bedeutet, dass neue Features nur noch durch externe Module dazu kommen, sich der Kern selbst aber nicht ver\u00e4ndert. Mittlerweile bieten auch schon einige Freiberufler und Unternehmen kommerziellen Support f\u00fcr Rex an.<\/p>\n<p>Seit dem Projektstart vor gut vier Jahren hat sich um das Werkzeug zur Konfigurationsverwaltung und zum Softwaredeployment eine eigene Fangemeinde versammelt, die auf pragmatisches Verwalten von Nodes auf Perl-Basis schw\u00f6rt. Da mittlerweile Module f\u00fcr die meisten Situationen bei der Softwareverteilung und ihrer Konfiguration bereitstehen, sich das Tool mit wenig Aufwand erweitern l\u00e4sst und eine hilfsbereite Community bereitsteht, tr\u00e4gt Rex seine neue Versionsnummer zu Recht.<\/p>\n<div style=\"background-color: #0079ff; color: white; padding: 1em;\">\n<h2 style=\"color: white;\"><span class=\"ez-toc-section\" id=\"Interview-Fuenf-Ziele-fuer-Rex-2\"><\/span>Interview: F\u00fcnf Ziele f\u00fcr Rex 2<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Jan Gehring, Initiator und Projektleiter von Rex, spricht im Interview \u00fcber neue Features seines Tools, Entwickler und eine besondere Regular Expression.<\/p>\n<p><strong>Was war die urspr\u00fcngliche Motivation, Rex zu ver\u00f6ffentlichen?<\/strong><\/p>\n<p>Ich habe schon viele Projekte ver\u00f6ffentlicht, aber keines hatte so viele Benutzer wie Rex. Der Grund dahinter ist der, dass ich der IT-Gemeinschaft auch etwas zur\u00fcckgeben m\u00f6chte. Das ganze Wissen, das ich \u00fcber die Jahre angesammelt habe, kommt von irgendwelchen Menschen, die ich noch nie gesehen habe, die aber gute Blog-Posts (kostenlos) ver\u00f6ffentlicht haben oder auf Fragen in Foren geantwortet haben. Wenn ich im Gegenzug mit der Ver\u00f6ffentlichung von Rex Anderen helfen kann, freut mich das sehr. Auf unserer Website nehmen wir aber auch Spenden entgegen!<\/p>\n<p><strong>Wie kamst Du auf den Namen f\u00fcr Rex? Kannst Du die \u00dcberlegung hinter der Regular Expression erkl\u00e4ren, die dahinter steht?<\/strong><\/p>\n<p>Der Name des Projektes ist ja (R)?ex. Dabei steht das <em>ex<\/em> f\u00fcr <em>Execution<\/em>. Das <em>(R)?<\/em> steht f\u00fcr <em>vielleicht Remote<\/em>. Anwender k\u00f6nnen also Aufgaben remote wie lokal erledigen.<\/p>\n<p><strong>Die Benutzerbasis von Rex ist seit Projektstart ziemlich gewachsen. Was wei\u00dft Du \u00fcber Eure Anwender?<\/strong><\/p>\n<p>Eigentlich wissen wir nur wenig \u00fcber unsere Anwender, da wir dazu bislang kaum Daten erheben und auswerten. Wir wollen aber noch in diesem Jahr auf unsere Benutzer zugehen und sie um sie um User-Stories bitten.<\/p>\n<p><strong>Wie ist das Projekt intern heute strukturiert? Wie viele Committer hattest Du in den letzten sechs Monaten? Haben sich Co-Maintainer herausgebildet?<\/strong><\/p>\n<p>Das Projekt selbst besteht mittlerweile aus drei Core-Committern. Pull Requests bekommen wir immer wieder aus der Community. Laut Github gab es in den letzten sechs Monaten rund ein Dutzend Committer, zu denen noch Beitr\u00e4ge per E-Mail dazukommen. Damit liegen wir auch im Vergleich zu den klassischen Configuration Management Systemen ganz gut. Leider gibt es ja Freshmeat oder Freecode nicht mehr, denn das war eine Plattform, \u00fcber die wir gut neue Benutzer erreicht haben.<\/p>\n<p><strong>In welche Richtung m\u00f6chtest Du Rex im n\u00e4chsten Jahr steuern?<\/strong><\/p>\n<p>F\u00fcr Version 2.x haben wir uns f\u00fcnf Ziele gesteckt: Als erstes wollen wir unsere Erfahrung aus der Vergangenheit im Code-Design nutzen, um eine stabile Basis f\u00fcr Rex zu schaffen. Daran arbeiten wir bereits seit einiger Zeit.<\/p>\n<p>Zweitens wollen wir Rex&#8216; Weboberfl\u00e4che Rex-JobControl stark erweitern und st\u00e4rker integrieren. Dazu migrieren wir das Bare-Metal-Deployment von Rex.IO und bauen es in Rex-JobControl ein. Obendrauf kommt noch VM- und Cloud-Management dazu. Um den Anwendern einen besseren \u00dcberblick \u00fcber ihre Systeme zu liefern, wollen wir drittens die Reporting-Schnittstelle erweitern. Damit wird es einfacher, auch eigene Reporting-Backends wie etwa Kibana und Elasticsearch zu integrieren.<\/p>\n<p>Viertens planen wir, Repositorio und Rex-JobControl zu verbinden. Das ist ein eigenes Projekt, das Linux-Repositorys verwaltet. Die Erweiterung zeigt dann automatisch in Rex-JobControl an, welche Pakete es wo aktualisieren muss oder wo Sicherheitsprobleme drohen. Das letzte Ziel ist eine Integration von Windows. Anwender fragen h\u00e4ufig danach, doch aktuell m\u00fcssen wir sie noch vertr\u00f6sten.<\/p>\n<p><strong>Wo siehst Du Rex in f\u00fcnf Jahren?<\/strong><\/p>\n<p>Im personellen Bereich w\u00fcnsche ich mir, dass die Zahl der Core-Commiter weiter w\u00e4chst, damit das Projekt im Zweifel auch ohne mich weiterleben kann. Sch\u00f6n w\u00e4re es, wenn wir dann einen Verein h\u00e4tten, dem die ganzen Rechte geh\u00f6ren.<\/p>\n<p>Aus technischer Sicht haben wir noch viele Ideen und auch Herausforderungen. Heute wei\u00df noch niemand genau, wie sich Configuration-Management an sich weiterentwickeln wird. Ich sage aber voraus, dass es in f\u00fcnf Jahren die Version 3 gibt \u2013 mit welchen Features, das kommt auf die W\u00fcnsche der Community an!<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bei der heutigen Zahl an Systemen und darauf laufender Anwendungen in einer IT-Abteilung ist deren manuelle Verwaltung keine ernsthafte Option mehr f\u00fcr Systemverwalter. Parallelausf\u00fchrung von Skripten, Konfigurationsmanagement und Deploymentwerkzeuge sind die Antworten des Zeitalters der Automation. Rex ist die Synthese dieser drei Ans\u00e4tze. Jetzt ist nach gut vier Jahren die Version 1.0 erschienen.<\/p>\n","protected":false},"author":18,"featured_media":13120,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[71,66],"service":[],"coauthors":[{"id":18,"display_name":"Nils Magnus","user_nicename":"nmagnus"}],"class_list":["post-20969","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-cloud","tag-devops"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rex 1.0: Das Automatisierungs-Tool unter der Lupe - inovex GmbH<\/title>\n<meta name=\"description\" content=\"Parallelausf\u00fchrung von Skripten, Konfigurationsmanagement und Deploymentwerkzeuge sind die Antworten des Zeitalters der Automation, die Rex zusammenf\u00fchrt.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rex 1.0: Das Automatisierungs-Tool unter der Lupe - inovex GmbH\" \/>\n<meta property=\"og:description\" content=\"Parallelausf\u00fchrung von Skripten, Konfigurationsmanagement und Deploymentwerkzeuge sind die Antworten des Zeitalters der Automation, die Rex zusammenf\u00fchrt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2015-03-16T11:42:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/03\/rex.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"320\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nils Magnus\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/03\/rex.png\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nils Magnus\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"12\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Nils Magnus\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/\"},\"author\":{\"name\":\"Nils Magnus\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/28e3e3371bd9f45d60de435eabdb7051\"},\"headline\":\"Rex 1.0: Das Automatisierungs-Tool unter der Lupe\",\"datePublished\":\"2015-03-16T11:42:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/\"},\"wordCount\":2336,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/rex.png\",\"keywords\":[\"Cloud\",\"DevOps\"],\"articleSection\":[\"General\",\"Infrastructure\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/\",\"name\":\"Rex 1.0: Das Automatisierungs-Tool unter der Lupe - inovex GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/rex.png\",\"datePublished\":\"2015-03-16T11:42:35+00:00\",\"description\":\"Parallelausf\u00fchrung von Skripten, Konfigurationsmanagement und Deploymentwerkzeuge sind die Antworten des Zeitalters der Automation, die Rex zusammenf\u00fchrt.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/rex.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/rex.png\",\"width\":800,\"height\":320,\"caption\":\"Rex 1.0 Headerbild\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rex 1.0: Das Automatisierungs-Tool unter der Lupe\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/28e3e3371bd9f45d60de435eabdb7051\",\"name\":\"Nils Magnus\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d1ef89a8b340224beb56d6ce592ccf4389e6d3bb0c0b29c3c6837c0b6d5d0a8c?s=96&d=retro&r=gf06fdbda636fdeac2d28e7a29cc9eb67\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d1ef89a8b340224beb56d6ce592ccf4389e6d3bb0c0b29c3c6837c0b6d5d0a8c?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d1ef89a8b340224beb56d6ce592ccf4389e6d3bb0c0b29c3c6837c0b6d5d0a8c?s=96&d=retro&r=g\",\"caption\":\"Nils Magnus\"},\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/nmagnus\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rex 1.0: Das Automatisierungs-Tool unter der Lupe - inovex GmbH","description":"Parallelausf\u00fchrung von Skripten, Konfigurationsmanagement und Deploymentwerkzeuge sind die Antworten des Zeitalters der Automation, die Rex zusammenf\u00fchrt.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/","og_locale":"de_DE","og_type":"article","og_title":"Rex 1.0: Das Automatisierungs-Tool unter der Lupe - inovex GmbH","og_description":"Parallelausf\u00fchrung von Skripten, Konfigurationsmanagement und Deploymentwerkzeuge sind die Antworten des Zeitalters der Automation, die Rex zusammenf\u00fchrt.","og_url":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2015-03-16T11:42:35+00:00","og_image":[{"width":800,"height":320,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/03\/rex.png","type":"image\/png"}],"author":"Nils Magnus","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/03\/rex.png","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Nils Magnus","Gesch\u00e4tzte Lesezeit":"12\u00a0Minuten","Written by":"Nils Magnus"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/"},"author":{"name":"Nils Magnus","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/28e3e3371bd9f45d60de435eabdb7051"},"headline":"Rex 1.0: Das Automatisierungs-Tool unter der Lupe","datePublished":"2015-03-16T11:42:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/"},"wordCount":2336,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/03\/rex.png","keywords":["Cloud","DevOps"],"articleSection":["General","Infrastructure"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/","url":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/","name":"Rex 1.0: Das Automatisierungs-Tool unter der Lupe - inovex GmbH","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/03\/rex.png","datePublished":"2015-03-16T11:42:35+00:00","description":"Parallelausf\u00fchrung von Skripten, Konfigurationsmanagement und Deploymentwerkzeuge sind die Antworten des Zeitalters der Automation, die Rex zusammenf\u00fchrt.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/03\/rex.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2015\/03\/rex.png","width":800,"height":320,"caption":"Rex 1.0 Headerbild"},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/rex-1-0-das-automatisierungs-tool-unter-der-lupe\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Rex 1.0: Das Automatisierungs-Tool unter der Lupe"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/28e3e3371bd9f45d60de435eabdb7051","name":"Nils Magnus","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/d1ef89a8b340224beb56d6ce592ccf4389e6d3bb0c0b29c3c6837c0b6d5d0a8c?s=96&d=retro&r=gf06fdbda636fdeac2d28e7a29cc9eb67","url":"https:\/\/secure.gravatar.com\/avatar\/d1ef89a8b340224beb56d6ce592ccf4389e6d3bb0c0b29c3c6837c0b6d5d0a8c?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d1ef89a8b340224beb56d6ce592ccf4389e6d3bb0c0b29c3c6837c0b6d5d0a8c?s=96&d=retro&r=g","caption":"Nils Magnus"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/nmagnus\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/20969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=20969"}],"version-history":[{"count":0,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/20969\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/13120"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=20969"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=20969"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=20969"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=20969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}