BLEIBEN SIE INFORMIERT

Melden Sie sich für unsere Newsletter an und erhalten Sie exklusive Updates zu IT-Trends und Neuigkeiten der ORIDX AG.

BLEIBEN SIE INFORMIERT

Melden Sie sich für unsere Newsletter an und erhalten Sie exklusive Updates zu IT-Trends und Neuigkeiten der ORIDX AG.

3 Minuten Lesezeit (648 Worte)

Automatisierung einfach gemacht: Module Defaults und Module Default Groups in Ansible

Ansible ist eines der weitverbreitetsten Tools in der IT-Welt, wenn es um Konfigurationsmanagement geht. Dennoch schöpfen viele Teams das volle Potenzial von Ansible nicht aus.

Ein oft übersehener, aber sehr effektiver Mechanismus zur Vereinfachung von Ansible-Projekten sind die sogenannten Module Defaults und Module Default Groups (auch bekannt als action_groups). Mit ihnen lassen sich Parameter zentral definieren und redundant wiederholte Konfigurationen vermeiden.

In diesem Beitrag zeigen wir euch, wie ihr diese Funktionen gezielt einsetzen könnt – für schlankere Playbooks, mehr Übersicht und weniger Fehlerquellen. 

Warum überhaupt Module Defaults?

Ansible bietet eine Vielzahl an eingebauten Modulen oder Modulen aus öffentlichen Ansible-Collections, um die Automatisierung vieler Aufgaben zu vereinfachen. In einem typischen Ansible-Projekt werden bestimmte Module mehrfach verwendet, häufig sogar mit den gleichen Parametern. Jeder dieser Aufrufe muss normalerweise erneut mit denselben Angaben versehen werden. Dies führt zu Redundanz, höherem Pflegeaufwand und steigender Fehleranfälligkeit.

Genau hier setzen Module Defaults an: Sie ermöglichen die zentrale Definition von Standardparametern, die automatisch für alle Tasks eines Moduls gelten. 

Module Defaults im Einsatz

Module Defaults lassen sich innerhalb eines Playbooks oder einer Rolle festlegen. Dazu wird ein zusätzlicher Block „module_defaults:“ definiert. Innerhalb dieses Blocks werden dann über den eindeutigen Identifier des entsprechenden Moduls Default Parameter definiert. Diese Werte gelten dann für alle Aufrufe dieses Moduls, sofern im Task nichts anderes angegeben ist. Diese Default Parameter können beim Aufruf des Moduls selbstverständlich auch wieder überschrieben werden.  

Beispiel

- hosts: localhost
  module_defaults:
    ansible.builtin.debug:
      msg: "Dies ist die Standard Nachricht"

  tasks:
    - name: Default debug message
      ansible.builtin.debug:

    - name: Different debug message
      ansible.builtin.debug:
        msg: "Dies ist eine andere Nachricht" 

Der erste Task nutzt die Standardwerte aus module_defaults, der zweite überschreibt die Default Message.

Angenommen, ihr verwendet in eurem Playbook mehrere MySQL-Module aus der Collection community.mysql, z. B.:

  • community.mysql.mysql_db – um Datenbanken anzulegen
  • community.mysql.mysql_user – um Benutzer:innen zu verwalten
  • community.mysql.mysql_query – um SQL-Statements auszuführen

Alle diese Module benötigen dieselben Login-Parameter (login_user, login_password, login_host usw.). Statt für jedes Modul eigene Defaults zu definieren, bietet Ansible die Möglichkeit, sogenannte Module Default Groups zu verwenden.

Module Default Groups / Action Groups in Ansible Collections

Häufig nutzen wir in unseren Ansible Projekten externe Collections, welche uns durch eine Vielzahl an mitgelieferten Modulen die automatisierte Konfiguration unseres Projektes vereinfachen. Viele dieser Module nutzen gleiche Parameter, beispielsweise für die Authentifizierung bei Datenbanksystemen. Damit wir diese Parameter nicht für jedes genutzte Modul als Default festlegen müssen, haben Collections die Möglichkeit in der Datei „meta/runtime.yml“ sogenannte „action_groups“ zu definieren. In diesen können dann verschiedene Module unter Gruppennamen zusammengefasst werden:  

requires_ansible: '>=2.9.10'
action_groups:
  all:
    - mysql_db
    - mysql_info
    - mysql_query
    - mysql_replication
    - mysql_role
    - mysql_user
    - mysql_variables 

Diese Gruppennamen können von uns genutzt werden, um Defaults für alle dort definierten Module zu setzen. Dabei wird beim Aufruf der Gruppe in „module_defaults“ das Schlüsselwort „group/“ gefolgt vom Identifier der Collection und dem Namen der „action_group“ genutzt.  

module_defaults:
  group/community.mysql.all:
    login_host: "{{ hostname }}"
    login_password: ordix
    login_port: 3306
    login_user: root 

Nicht jede Collection definiert bereits Action Groups. In diesem Fall können wir in der lokal installierten Collection selbst unter meta/runtime.yml eigene Gruppen anlegen und erweitern.  

Fazit

Module Defaults und Module Default Groups sind leistungsstarke Werkzeuge, um Ansible-Projekte zu vereinfachen und wartbarer zu gestalten. Sie ermöglichen:

  • Zentrale Verwaltung häufig genutzter Parameter
  • Weniger Redundanz im Code
  • Schnellere Anpassung und geringere Fehleranfälligkeit
  • Mehr Übersicht bei wachsender Projektgröße

Gerade bei größeren Infrastrukturen sorgen diese Features für mehr Effizienz und Sicherheit, sei es beim Deployment, in DevOps-Workflows oder beim Betrieb komplexer Datenbanksysteme.

Seid ihr bereit, eure DevOps-Prozesse auf das nächste Level zu heben? Kontaktiert uns noch heute und lasst euch von unseren IT-Expert:innen beraten! 

Seminarempfehlungen

Junior Consultant bei ORDIX

Ähnliche Beiträge

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Mittwoch, 24. Dezember 2025

Sicherheitscode (Captcha)