© Excellent backgrounds/Shutterstock.com
Java Magazin
Eigene Module für Ansible aufsetzen

Funktionsvielfalt vergrößern

Ansible von Red Hat hat sich in den letzten Jahren zu einem beliebten Konfigurationswerkzeug gemausert und spielt eine wichtige Rolle bei DevOps und Cloud-Computing. Der reiche Fundus an eingebauten Modulen begründet die umfangreiche Funktionalität. Dieser Artikel zeigt, wie Sie selbst Module aufsetzen können, um diese Funktionsvielfalt weiter zu vergrößern. Dabei kommt Python zu Einsatz.

Daniel Stender


Ob Provisioner, Fernkonfigurationswerkzeug oder Tool für Infrastructure as Code: Ansible [1] aus dem Portfolio von Red Hat zählt mittlerweile zu den beliebtesten Lösungen für die automatisierte Steuerung von physischen und virtuellen Serverlandschaften sowie für das Aufspielen von Applikationen. Die Open-Source-Software ist ausgereift (aktuelle Version 2.8) und verfolgt für die Konfiguration hauptsächlich von Linux-Servern, gegenüber anderen deklarativen Lösungen („was“ soll erreicht werden) wie Puppet und Chef, einen alternativen imperativen Ansatz („wie“ soll etwas erreicht werden). Ansible kommt ohne einen Agenten auf Zielmaschinen aus, wobei das unkomplizierte SSH-Protokoll als Zugang dient. Ansible wird auf breiter Front beim Cloud-Computing verwendet und dort unter anderem zur Bestückung von Maschinen-Images eingesetzt, hat aber auch in vielen DevOps-Toolchains einen festen Platz. Die Bedeutung der Software lässt sich daran ablesen, dass unter den abgefragten Themengebieten des Linux Professional Institute (LPI) für das Zertifikat 701 „DevOps Tools Engineer“ Ansible noch vor Docker liegt [2].

In einem früheren Artikel [3] ging es darum, wie Sie mit dem Einsatz von Rollen (Roles) ein komplexes Multi-Tier-Set-up mit Load Balancer, redundanten Web-Frontends und Datenbank-Backend für die Kernkomponente Ansible Engine (der auf CLI-Werkzeugen basierte Provisioner [4] wird im Gegensatz zu der Enterprise-Variante Ansible Tower so bezeichnet) aufsetzen können. Dabei wurde das Zusammenspiel von Maschineninventar (Inventory), Ablaufplan (Playbook) und den eingebauten Modulen vorgestellt. Diesmal möchte ich speziell das Thema der Module weiter vertiefen. Insbesondere geht es darum, wie Sie selbst solch eine Komponente für einen beliebigen Anwendungszweck aufsetzen und verwenden können.

Ansible-Module

Die mitgelieferten Module sind der Kern von Ansible. Mittlerweile ist die Zahl der offiziell eingebundenen Stücke bei Version 2.7 auf über 2 000 angewachsen, die Zahl kann auf Linux-Kontrollknoten ermittelt werden mit: $ ansible-doc -l | wc -l. Es gibt zunächst einmal die relativ übersichtliche Anzahl von Standardmodulen für Handgriffe auf Linux-Servern und das Aufspielen von Dateien und Jinja2-Templates. Darüber hinaus existieren viele spezielle Module, die den gesamten für die Provisionierung von Software benötigten Werkzeugkasten abbilden. Dieser beinhaltet den Umgang mit Versionskontrollsystemen, Codehostern wie GitHub, das Einspielen von Softwarepaketen für di...

Java Magazin
Eigene Module für Ansible aufsetzen

Funktionsvielfalt vergrößern

Ansible von Red Hat hat sich in den letzten Jahren zu einem beliebten Konfigurationswerkzeug gemausert und spielt eine wichtige Rolle bei DevOps und Cloud-Computing. Der reiche Fundus an eingebauten Modulen begründet die umfangreiche Funktionalität. Dieser Artikel zeigt, wie Sie selbst Module aufsetzen können, um diese Funktionsvielfalt weiter zu vergrößern. Dabei kommt Python zu Einsatz.

Daniel Stender


Ob Provisioner, Fernkonfigurationswerkzeug oder Tool für Infrastructure as Code: Ansible [1] aus dem Portfolio von Red Hat zählt mittlerweile zu den beliebtesten Lösungen für die automatisierte Steuerung von physischen und virtuellen Serverlandschaften sowie für das Aufspielen von Applikationen. Die Open-Source-Software ist ausgereift (aktuelle Version 2.8) und verfolgt für die Konfiguration hauptsächlich von Linux-Servern, gegenüber anderen deklarativen Lösungen („was“ soll erreicht werden) wie Puppet und Chef, einen alternativen imperativen Ansatz („wie“ soll etwas erreicht werden). Ansible kommt ohne einen Agenten auf Zielmaschinen aus, wobei das unkomplizierte SSH-Protokoll als Zugang dient. Ansible wird auf breiter Front beim Cloud-Computing verwendet und dort unter anderem zur Bestückung von Maschinen-Images eingesetzt, hat aber auch in vielen DevOps-Toolchains einen festen Platz. Die Bedeutung der Software lässt sich daran ablesen, dass unter den abgefragten Themengebieten des Linux Professional Institute (LPI) für das Zertifikat 701 „DevOps Tools Engineer“ Ansible noch vor Docker liegt [2].

In einem früheren Artikel [3] ging es darum, wie Sie mit dem Einsatz von Rollen (Roles) ein komplexes Multi-Tier-Set-up mit Load Balancer, redundanten Web-Frontends und Datenbank-Backend für die Kernkomponente Ansible Engine (der auf CLI-Werkzeugen basierte Provisioner [4] wird im Gegensatz zu der Enterprise-Variante Ansible Tower so bezeichnet) aufsetzen können. Dabei wurde das Zusammenspiel von Maschineninventar (Inventory), Ablaufplan (Playbook) und den eingebauten Modulen vorgestellt. Diesmal möchte ich speziell das Thema der Module weiter vertiefen. Insbesondere geht es darum, wie Sie selbst solch eine Komponente für einen beliebigen Anwendungszweck aufsetzen und verwenden können.

Ansible-Module

Die mitgelieferten Module sind der Kern von Ansible. Mittlerweile ist die Zahl der offiziell eingebundenen Stücke bei Version 2.7 auf über 2 000 angewachsen, die Zahl kann auf Linux-Kontrollknoten ermittelt werden mit: $ ansible-doc -l | wc -l. Es gibt zunächst einmal die relativ übersichtliche Anzahl von Standardmodulen für Handgriffe auf Linux-Servern und das Aufspielen von Dateien und Jinja2-Templates. Darüber hinaus existieren viele spezielle Module, die den gesamten für die Provisionierung von Software benötigten Werkzeugkasten abbilden. Dieser beinhaltet den Umgang mit Versionskontrollsystemen, Codehostern wie GitHub, das Einspielen von Softwarepaketen für di...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang