Ansible-Tutorial: Module und Collections
Module verrichten den Hauptteil der Arbeit und lassen sich flexibel erweitern. Die neue Collection-Infrastruktur macht die Erweiterungen einfach transportabel.
- Daniel Kobras
- Mark Pröhl
Tasks bilden den elementaren Baustein von Ansible, aus dem sowohl Ad-hoc-Kommandos als auch ganze Playbooks aufgebaut sind. Die bisherigen Teile des Tutorials haben verschiedene Methoden behandelt, beispielsweise über das Inventar oder Lookup-Plug-ins die Parametrisierung von Tasks direkt oder indirekt zu beeinflussen. Dieser dritte Teil beschäftigt sich nun mit der genauen Aufgabe, die ein Task erledigen soll. Dazu ist jedem Task exakt ein Ansible-Modul zugeordnet, das die zu verrichtenden Tätigkeiten festlegt.
Idealerweise gibt es analog zur bekannten Unix-Philosophie ein Modul für genau einen Zweck. In der Praxis wird dieser Grundsatz allerdings recht unterschiedlich interpretiert: Da jedes Modul sein Verhalten über Eingabeparameter steuern lassen kann, trifft man vor allem jenseits des Basisumfangs von Ansible hier durchaus auch auf umfangreiche Alleskönner. Meist geben sie sich schon in der Dokumentation durch die schiere Länge der Liste mit den erlaubten Parametern zu erkennen.
Ansible arbeitet grundsätzlich zustandslos. Für Module bedeutet das, dass sie möglichst unabhängig vom Ausgangszustand stets denselben Zielzustand herstellen sollen – auch dann, wenn sie mehrfach hintereinander aufgerufen werden. Module müssen somit idempotent sein.
Das war die Leseprobe unseres heise-Plus-Artikels "Ansible-Tutorial: Module und Collections". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.