Übersicht wichtige Module, Nutzer Einrichtung, SW-Installation

Ansible ist ein leistungsstarkes und einfach zu bedienendes Automatisierungstool, das Administratoren und DevOps-Teams dabei hilft, Systeme effizient zu verwalten. Durch seine agentenlose Architektur und die Nutzung von SSH eignet es sich ideal für Konfigurationsmanagement, Software-Installationen und Nutzerverwaltung. In diesem Beitrag zeigen wir dir, wie du mit den wichtigsten Ansible-Modulen arbeitest, Nutzer einrichtest und Software auf Remote-Hosts installierst.


1. Einführung in Ansible-Module

Ansible-Module sind wiederverwendbare Skripte, die bestimmte Aufgaben auf den Zielsystemen ausführen. Sie sind das Herzstück von Ansible und decken ein breites Spektrum an Funktionen ab – von der Paketverwaltung bis zur Nutzerverwaltung. Ansible bietet hunderte von Modulen, die je nach Einsatzgebiet genutzt werden können.

Wichtige Module im Überblick:

  • apt: Paketverwaltung auf Debian-basierten Systemen (z.B. Ubuntu)
  • yum: Paketverwaltung auf Red Hat-basierten Systemen (z.B. CentOS, Fedora)
  • user: Erstellung und Verwaltung von Benutzern
  • group: Verwaltung von Gruppen auf dem System
  • service: Verwaltung von Diensten (Starten, Stoppen, Neustarten)
  • copy: Dateien auf Remote-Hosts kopieren
  • file: Verwaltung von Dateiattributen (Berechtigungen, Eigentümer, Verzeichnisse)
  • shell/command: Shell-Kommandos auf Remote-Hosts ausführen

2. Nutzer-Einrichtung mit Ansible

Die Verwaltung von Nutzern und Gruppen ist eine häufige Aufgabe in der IT-Administration. Mit Ansible kannst du Benutzerkonten auf mehreren Hosts zentral verwalten.

Beispiel-Playbook zur Nutzer-Erstellung

Hier ist ein einfaches Playbook, das einen neuen Benutzer auf mehreren Hosts erstellt:

---
- hosts: all
  become: true
  tasks:
    - name: Erstelle einen neuen Benutzer
      user:
        name: "john"
        state: present
        password: "{{ 'geheimesPasswort' | password_hash('sha512') }}"
        shell: /bin/bash
        groups: "sudo"

Erklärung:

  • Der Befehl user erstellt einen Benutzer mit dem Namen john und setzt das Passwort sowie die Bash-Shell.
  • Die Option groups: "sudo" fügt den Benutzer der sudo-Gruppe hinzu, um ihm Administratorrechte zu geben.
  • Das Passwort wird mithilfe des Jinja2-Filters password_hash sicher gehasht.

Nutzer löschen

Falls du einen Benutzer entfernen möchtest, kannst du einfach das state auf absent setzen:

    - name: Lösche einen Benutzer
      user:
        name: "john"
        state: absent

3. Gruppenverwaltung

Neben der Nutzerverwaltung ist es oft notwendig, bestimmte Gruppen für Benutzer zu definieren. Das group-Modul hilft dir dabei.

Beispiel für das Erstellen einer Gruppe:

    - name: Erstelle eine Gruppe
      group:
        name: "entwickler"
        state: present

Erklärung: Dieser Task erstellt die Gruppe entwickler, falls sie noch nicht existiert.


4. Software-Installation mit Ansible

Eine der Hauptaufgaben von Ansible ist die Verwaltung und Installation von Software auf Remote-Systemen. Ansible bietet dafür eine Vielzahl von Modulen, abhängig vom Betriebssystem.

Paketinstallation auf Debian-basierten Systemen mit apt

Das apt-Modul wird auf Debian-basierten Systemen wie Ubuntu verwendet. Hier ist ein Beispiel für die Installation von nginx:

---
- hosts: webserver
  become: true
  tasks:
    - name: Update der Paketliste
      apt:
        update_cache: yes

    - name: Installiere Nginx
      apt:
        name: nginx
        state: present

Erklärung:

  • Der erste Task aktualisiert die Paketliste mit update_cache: yes.
  • Der zweite Task installiert das Paket nginx, falls es noch nicht vorhanden ist (state: present).

Paketinstallation auf Red Hat-basierten Systemen mit yum

Für CentOS, RHEL und Fedora-Systeme verwendest du das yum-Modul:

---
- hosts: webserver
  become: true
  tasks:
    - name: Installiere Nginx auf Red Hat-basierten Systemen
      yum:
        name: nginx
        state: present

5. Dienstverwaltung mit Ansible

Nachdem Software installiert wurde, musst du möglicherweise Dienste starten, stoppen oder neustarten. Hier kommt das service-Modul ins Spiel.

Dienst starten und aktivieren

Hier ist ein Beispiel, um sicherzustellen, dass der nginx-Dienst läuft und beim Systemstart aktiviert ist:

    - name: Starte und aktiviere Nginx
      service:
        name: nginx
        state: started
        enabled: yes

Erklärung:

  • state: started stellt sicher, dass der Dienst läuft.
  • enabled: yes aktiviert den Dienst für den Systemstart.

Dienst stoppen

Falls du den Dienst stoppen möchtest, kannst du den state auf stopped setzen:

    - name: Stoppe Nginx
      service:
        name: nginx
        state: stopped

6. Dateien und Verzeichnisse verwalten

Das file-Modul ist ein vielseitiges Werkzeug, um Berechtigungen zu setzen, Dateien zu erstellen oder Verzeichnisse zu verwalten.

Beispiel: Verzeichnis erstellen

Um ein Verzeichnis auf einem Remote-Host zu erstellen, kannst du das file-Modul wie folgt verwenden:

    - name: Erstelle ein Verzeichnis
      file:
        path: /var/www/html
        state: directory
        mode: '0755'

Erklärung:

  • path gibt den Pfad des Verzeichnisses an.
  • state: directory stellt sicher, dass es ein Verzeichnis ist.
  • mode: '0755' setzt die Berechtigungen für das Verzeichnis.

Beispiel: Datei kopieren

Das copy-Modul erlaubt es dir, Dateien auf Remote-Hosts zu kopieren. Hier ein Beispiel, um eine lokale Datei auf den Server zu kopieren:

- name: Kopiere eine Datei auf den Remote-Host
  copy:
    src: /local/path/to/file.conf
    dest: /etc/nginx/nginx.conf
    mode: '0644'

Fazit

In diesem Tutorial haben wir einen umfassenden Überblick über wichtige Ansible-Module gegeben, die für die tägliche Systemadministration unverzichtbar sind. Von der Einrichtung neuer Benutzer und Gruppen bis hin zur Installation von Software und Verwaltung von Diensten deckt Ansible alle wesentlichen Aufgaben ab, die für die Automatisierung von IT-Infrastrukturen notwendig sind.

Mit diesen grundlegenden Kenntnissen bist du in der Lage, dein Netzwerk effizient zu verwalten und Aufgaben wie Software-Installationen oder Nutzer-Einrichtungen automatisiert auf mehreren Systemen auszuführen. Ansible bietet jedoch noch viel mehr – durch das Erstellen komplexer Playbooks und das Verwenden von Rollen kannst du deine Automatisierung noch weiter ausbauen.

Viel Spaß beim Automatisieren! Wenn du Fragen hast oder deine eigenen Tipps teilen möchtest, lass es uns in den Kommentaren wissen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert