7 Konfiguration

Offizielle Dokumentation

Die ansible.cfg-Datei ist die zentrale Konfigurationsdatei von Ansible, die wichtige Einstellungen für die Ausführung von Playbooks und Tasks definiert. Diese Konfigurationsdatei kann auf verschiedenen Ebenen existieren und beeinflusst das Verhalten von Ansible in vielerlei Hinsicht.

7.1 Konfigurationshierarchie

Ansible verwendet folgende Prioritätsreihenfolge für Konfigurationsquellen (von niedrig nach hoch):

  1. Systemweite Konfiguration: /etc/ansible/ansible.cfg
  2. Benutzerspezifisch: ~/.ansible.cfg
  3. Projektbezogen: ./ansible.cfg (im Projektverzeichnis)
  4. Umgebungsvariablen: z.B. ANSIBLE_INVENTORY, ANSIBLE_REMOTE_USER
  5. CLI-Parameter: z.B. -i hosts, -u user, -e var=value

Höhere Prioritäten überschreiben niedrigere Einstellungen.


7.2 Wichtigste Konfigurationsabschnitte

7.2.1 defaults

Dieser Abschnitt enthält allgemeine Standardwerte für die Ausführung von Playbooks und Tasks.

7.2.2 privilege_escalation

Steuert Einstellungen für Privilegieneskalation (z.B. sudo, become).

7.2.3 ssh_connection

Steuert SSH-bezogene Einstellungen.

7.2.4 inventory

Verwaltet Inventar-Verhalten und Plugin-Mechanismen.

7.2.5 callbacks_enabled

Ersetzt das veraltete callback_whitelist (seit Ansible 2.13). Definiert aktivierte Callback-Plugins:

callbacks_enabled = timer, profile_tasks

7.3 Beispiel einer ansible.cfg

[defaults]
inventory = ./inventory.ini
remote_user = ansible
host_key_checking = False
forks = 10
log_path = ./ansible.log
deprecation_warnings = False
force_color = True
collections_paths = ./collections:/usr/share/ansible/collections
roles_path = ./roles:/usr/share/ansible/roles

[privilege_escalation]
become = True
become_method = sudo
become_user = root

[ssh_connection]
pipelining = True

[inventory]
enable_plugins = host_list, script, yaml, ini, auto
inventory_ignore_extensions = .bak,.tmp

[defaults]
callbacks_enabled = timer, profile_tasks

7.4 Weitere nützliche Parameter

7.4.1 Für Produktionsumgebungen

7.4.2 Für Entwicklungsumgebungen


7.5 Umgebungsvariablen als Alternative

Alle ansible.cfg-Parameter können auch als Umgebungsvariablen gesetzt werden:

export ANSIBLE_INVENTORY=./inventory.ini
export ANSIBLE_REMOTE_USER=ansible
export ANSIBLE_HOST_KEY_CHECKING=False
export ANSIBLE_FORKS=10

7.6 Sicherheitshinweise

Vermeiden Sie folgende Parameter in Produktionsumgebungen:

Empfohlene Sicherheitsmaßnahmen: