Ansible Engine und Tower für große Unternehmen IT-Verwaltung mit Red Hat Ansible Automation

Autor / Redakteur: Michael Matzer / Stephan Augsten

DevOps-Operationen wie das Lifecycle Management von Applikationen werden erst durch eine automatisierte Zuteilung von Ressourcen effizient. Hier hilft Red Hat Ansible, das im Herbst 2017 zahlreiche Neuerungen erfuhr.

Firmen zum Thema

So sieht die Architektur von Ansible aus.
So sieht die Architektur von Ansible aus.
(© Red Hat)

Ansible, das 2015 von Red Hat gekauft wurde, ist eine in der Open-Source-Community entwickelte Lösung für die agentenlose IT-Automatisierung. Sie erlaubt das Lifecycle-Management von Apps durch Anwendungsverteilung, Konfigurationsmanagement, Netzwerkautomation und Workflow-Orchestrierung. Dies eignet sich insbesondere für größere IT-Umgebungen, in denen beispielsweise Red Hat Enterprise Linux zum Einsatz kommen könnte.

Ansible verwaltet Netzwerkknoten mithilfe der SSH (Secure Shell) auf LXC-Containern, für Windows-Zielsysteme sind ein WinRM-Plug-in und PowerShell vonnöten. Somit sind also OpenSSH, WinRM-Plug-in, PowerShell und Python auf dem zu verwaltenden Knoten erforderlich, dafür aber kein zusätzlicher Software-Agent. Die einzelnen Module, die in jeder Programmiersprache geschrieben sein können (vorzugsweise Python), nutzen zur Ausgabe das JSON-Dokumentenformat.

Roles & Playbooks

Einer der Hauptvorteile der Automatisierung besteht in der Wiederholung von IT-Funktionen und Abläufen. Die einzelnen Funktionen werden als Ansible Roles bezeichnet, Abläufe lassen sich als Playbooks speichern und verteilen.

Roles sind auf konventionelle Art strukturierte Content Directories, die sich zwischen Teams, Unternehmensteilen und Umgebungen portieren lassen. Die Ansible Roles fungieren daher quasi als "gemeinsame Sprache" für die Funktionalität von Ansible; sie können Variablen, Handlers, Files, Templates, Tasks und Module enthalten.

Playbooks hingegen beschreiben Konfigurationen, Deployment und Orchestrierung in Ansible. Zur Formulierung wiederverwendbarer Beschreibungen von Systemen dient YAML, wobei jedes Playbook eine Gruppe von Hosts zu einer Reihe von Rollen zuordnet.

Natürlich muss es im Hinblick auf Change Management auch ein Inventar geben. Das Inventar ist eine Beschreibung der Knoten, auf die von Ansible zugegriffen werden kann. Standardmäßig wird das Inventar durch eine Konfigurationsdatei im INI- Format beschrieben. Die Konfigurationsdatei listet entweder die IP-Adresse oder den Hostnamen jedes Knotens auf, der von Ansible zugänglich ist. Darüber hinaus können Knoten gruppiert werden. Ansible kann auch das Inventar dynamisch aus anderen Systemen beziehen.

Da Ansible Roles in Unternehmen weit verbreitet sind, hat sich der Community-Hub Ansible Galaxy als beste Möglichkeit herauskristallisiert, um die Roles zu organisieren, aufzufinden und sie gemeinsam zu nutzen.

Als Verwaltungskonsole dient AWX, bestehend aus einer REST-API, einem Web-Service und einer Web-basierten Konsole. Damit kann die mit Ansible verwaltete IT-Infrastruktur zentralisiert werden, dies erfolgt über ein visuelles Dashboard einschließlich Verwaltung aller Inventare, einer rollenbasierten Zutrittskontrolle, Job-Scheduling und Nachrichten. Von AWX ist das Tower-Produkt abgeleitet.

Bildergalerie
Bildergalerie mit 6 Bildern

Ansible Engine und Ansible Tower

„Red Hat Ansible Automation“ gibt es seit Herbst 2017 in zwei Editionen: Neben dem kostenlosen Community-Projekt Ansible, das von Red Hat unabhängig ist, liegen als kostenpflichtige Angebote Red Hat Ansible Engine und Red Hat Ansible Tower vor. Engine und Tower bieten Leistungsmerkmale, die große Unternehmen benötigen, um Sicherheit, Zuverlässigkeit und Skalierbarkeit zu gewährleisten.

Unternehmen sollen damit in die Lage versetzt werden, eine geschäftskritische Automatisierungslösung unternehmensweit einzuführen, zu betreiben und diese vollständig zu verwalten. Von dieser unternehmensweiten Einführung können laut Red Hat zwei Gruppen profitieren: IT-Abteilungen, die DevOps implementieren möchten, und IT-Verantwortliche, die mithilfe von Automatisierung ihre digitale Führungsposition ausbauen wollen.

Ansible Engine besteht aus dem quelloffenen Basisprodukt mit seinen über 100 Kernmodulen plus einer Support-Subskription. Das bedeutet Unterstützung durch die weltweit verfügbare Supportorganisation von Red Hat – entweder zu den üblichen Geschäftszeiten oder 24x7. Die Lizenz umfasst Open Source Assurance, Service Level Agreements (SLA) sowie regelmäßige Sicherheits- sowie Wartungsupdates.

Optional gibt es seit Oktober 2017 ein Networking Add-On „Ansible Engine for Network Automation“, das die Netzwerkautomatisierung erlaubt. Ansible Engine beinhaltet volle Engineering-Unterstützung für die netzwerkspezifischen Module Arista (EOS), Cisco (IOS, IOS-XR, NX-OS), Juniper (Junos OS), Open vSwitch und VyOS.

Neuerungen in Ansible Project v2.4

Ziel der neuen Ansible-Project-Version 2.4 ist es laut Hersteller, Administratoren und Playbook-Autoren eine detaillierte Kontrolle über ihre Ansible-Workloads zu ermöglichen. Dazu gehört die Unterstützung von Python 3 als Programmiersprache sowie von YAML als Markup-Sprache für die Konfiguration.

Ein neues Inventar-Plug-in-System soll die Bereitstellung mehrerer Inventare und den Einsatz eines Cache Plug-ins ermöglichen. Playbooks, die mehrere Rollen verwenden, können ein anderes Vault-Passwort pro Team beziehungsweise Rolle verwenden. Von wesentlicher Bedeutung für alle Service Provider ist die Unterstützung von AWS (ELB, S3, IAM, Lambda, Redshift, ECS, Lightsail usw.), Microsoft Azure, CloudEngine, Google Cloud Platform (GCP), F5 und Windows. Ansible 2.4 ist erstmals als supportetes Angebot als Ansible Engine erhältlich.

Ansible Tower 3.2: AWX für Teams

Ansible Tower soll IT-Teams dabei unterstützen, automatisierte Systeme effizienter zu verwalten und mehrstufige Anwendungsszenarien zu optimieren, während zusätzliche Kontroll-, Sicherheits- und Delegationsfunktionen hinzugefügt werden. Die Version 3.2 vom Herbst 2017 hat zahlreiche Neuerungen und Erweiterungen aufzuweisen.

Im Bereich der Verwaltung soll die aktualisierte Inventarunterstützung es Anwendern erlauben, benutzerdefinierte Ansichten für die Verwaltung von Geräten auf der Grundlage ihrer Attribute in einer Public, Private oder Hybrid Cloud zu erstellen. Tower Instance Groups reservieren Kapazitäten für spezifische Organisationen und Inventarisierung. Alleinstehende Knoten von Tower stellen an entfernten Standorten lokale Kapazitäten für die Ausführung von Jobs bereit.

Bildergalerie
Bildergalerie mit 6 Bildern

Die Automation soll ab v3.2 flexibler erfolgen. Die Inventarisierung mit Source Control Management (SCM) ermöglicht es Teams, ihre Automatisierung und Infrastruktur vollständig als Code zu verwalten. Mit sogenannten „Pluggable Credentials“ sollen Benutzern ihre eigenen benutzerdefinierten Credential-Typen definieren können; möglich ist laut Hersteller auch eine Integration der Beglaubigungen von Drittanbietern. Außerdem wurden die Möglichkeiten erweitert, Tower mit Modulen zu steuern.

Ansible Engine wird Stand Alone angeboten oder im Bundle mit Tower. Tower lässt sich mit zahlreichen anderen Tools von Drittanbietern koppeln. Grundlage für die Berechnung der Lizenzkosten ist jeweils die Anzahl der verwalteten Knoten.

Die Zielsysteme

Natürlich bietet Red Hat Ansible in seiner eigenen Subskription Red Hat Enterprise Linux (RHEL) an. Ansible und Ansible Tower haben als Ziel nicht nur bestimmte Linux-Distributionen wie etwa RHEL im Visier, sondern können alles Mögliche automatisieren.

Dazu gehören alle möglichen Linux-Distributionen, solange sie SSH anbieten und eine unterstütze Python-Version haben; das betrifft alle üblichen Linux-Distributionen. Darüber hinaus verwaltet Ansible alle anderen Unix-Systeme, die SSH anbieten und eine unterstütze Python-Version haben, also Solaris, HP-UX, etc.; bei AIX muss z.B. noch Python installiert werden, aber dann läuft es wie im Ansible Blog beschrieben.

Weitere Zielsysteme sind Windows ab Windows Server 2008 RC2 aufwärts (via WinRM und Powershell, s.o.) und Netzwerk-Geräte wie Router, Switches, etc.; diese werden entweder per SSH oder via REST API angesprochen, je nach Modell. Unterstützte Geräte bzw. Hersteller sind Cisco, Juniper, Arista, und viele weitere.

Unter den unterstützten Cloud-Anbietern sind GCE (Google), Azure und AWS zu finden. Diese kann Ansible in die Automatisierung mit einbinden und steuern, ebenso wie die VMs, die darauf laufen. Last but not least verwaltet Ansible auch viele Applikationen, die via REST API erreicht werden können, unabhängig von den Betriebssystemen, auf denen sie laufen.

(ID:45114242)

Über den Autor