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.
Ansible verwendet folgende Prioritätsreihenfolge für Konfigurationsquellen (von niedrig nach hoch):
/etc/ansible/ansible.cfg~/.ansible.cfg./ansible.cfg (im
Projektverzeichnis)ANSIBLE_INVENTORY, ANSIBLE_REMOTE_USER-i hosts,
-u user, -e var=valueHöhere Prioritäten überschreiben niedrigere Einstellungen.
Dieser Abschnitt enthält allgemeine Standardwerte für die Ausführung von Playbooks und Tasks.
inventory: Pfad zur Inventardatei, die die Ziel-Hosts definiert. Beispiel:
inventory = ./inventory.iniremote_user: Standardbenutzer für die Verbindung zu den Hosts. Beispiel:
remote_user = ansiblehost_key_checking: Ob Ansible den Host-Schlüssel überprüft. In Entwicklungsumgebungen oft deaktiviert:
host_key_checking = Falsetimeout: Zeit in Sekunden für Verbindungsaufbau, bevor Ansible aufgibt. Beispiel:
timeout = 30forks: Anzahl paralleler Verbindungen. Standard ist 5, oft auf 10-20 erhöht:
forks = 10log_path: Pfad zur Logdatei. Achtung: Muss beschreibbar sein:
log_path = ./ansible.logdeprecation_warnings: Steuert Warnungen bei veralteten Features. Für saubere Ausgaben:
deprecation_warnings = Falseforce_color: Erzwingt Farbausgabe auch in CI/CD-Pipelines:
force_color = Truecollections_paths: Pfade für Ansible Collections:
collections_paths = ./collections:/usr/share/ansible/collectionsroles_path: Pfade für Ansible Roles:
roles_path = ./roles:/usr/share/ansible/rolesvault_password_file: Datei mit Vault-Passwort für automatisierte Nutzung:
vault_password_file = .vault_pass.txtSteuert Einstellungen für Privilegieneskalation (z.B.
sudo, become).
become: Aktiviert die Privilegieneskalation. Beispiel:
become = Truebecome_method: Methode der Privilegieneskalation. Beispiel:
become_method = sudobecome_user: Zielbenutzer für Privilegieneskalation. Beispiel:
become_user = rootbecome_ask_pass: Fragt nach Passwort.
Hinweis: Funktioniert nur mit
--ask-become-pass:
become_ask_pass = FalseSteuert SSH-bezogene Einstellungen.
pipelining: Reduziert SSH-Verbindungen und verkürzt Ausführungszeit:
pipelining = Truecontrol_path: Pfad für SSH-Control-Socket-Dateien:
control_path = %(directory)s/%%h-%%rVerwaltet Inventar-Verhalten und Plugin-Mechanismen.
enable_plugins: Aktiviert Inventar-Plugins:
enable_plugins = host_list, script, yaml, ini, autoinventory_ignore_extensions: Ignoriert bestimmte Dateierweiterungen:
inventory_ignore_extensions = .bak,.tmp,.swpErsetzt das veraltete
callback_whitelist (seit Ansible 2.13). Definiert
aktivierte Callback-Plugins:
callbacks_enabled = timer, profile_tasksansible.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_tasksretry_files_enabled: Deaktiviert
.retry-Dateien bei Fehlschlägen:
retry_files_enabled = Falsedisplay_skipped_hosts: Zeigt übersprungene Hosts an:
display_skipped_hosts = Falsedisplay_ok_hosts: Reduziert Ausgabe bei erfolgreichen Tasks:
display_ok_hosts = FalseAlle 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=10Vermeiden Sie folgende Parameter in Produktionsumgebungen:
ssh_args = -o ForwardAgent=yes (Sicherheitsrisiko durch
Agent-Forwarding)Empfohlene Sicherheitsmaßnahmen:
host_key_checking = True in
Produktionsumgebungen.vault_pass.txt
(600)