EMZETT.
Login

Ansible für Einsteiger

Kurz: Ansible richtet Server automatisch ein. Man beschreibt in einer Textdatei den gewünschten Zustand („Paket nginx ist installiert, Dienst läuft“), und Ansible stellt ihn über SSH her, ohne ein Programm auf dem Zielrechner zu installieren.

Bausteine

  • Inventar: Liste der Rechner (hosts.ini).
  • Playbook: YAML-Datei mit Aufgaben (Tasks).
  • Module: fertige Bausteine wie apt, copy, service, user.

Beispiel

- name: Webserver einrichten
  hosts: webserver
  become: true
  tasks:
    - name: nginx installieren
      ansible.builtin.apt:
        name: nginx
        state: present
        update_cache: true
    - name: nginx starten
      ansible.builtin.service:
        name: nginx
        state: started
        enabled: true

Start: ansible-playbook -i hosts.ini playbook.yml. Vorher gefahrlos testen mit --check.

Idempotenz

Ein Playbook darf beliebig oft laufen und ändert nur, was nötig ist. Beim zweiten Lauf steht überall „ok“ statt „changed“. Deshalb nutzt man Module („Zustand herstellen“) statt Shell-Befehlen („tu etwas“).

Wann lohnt es sich?

Ab dem zweiten Server oder wenn man einen Rechner reproduzierbar neu aufbauen will. Für einen einzelnen privaten Rechner reichen Dotfiles und Konfigurationsverwaltung und ein Skript. Das Dateiformat erklärt Dateiformate für Konfiguration und Daten (YAML, JSON, XML, TOML, CSV).

Siehe auch: SSH unter Linux: Schlüssel und Absicherung