defaults und vars: Die Reihenfolge beim Überschreiben
Entwerfen Sie klare Schnittstellen für Rollenvariablen.
defaults und vars: Die Reihenfolge beim Überschreiben ist eine kostenlose Ansible Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ansible Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.
Zwei Variablenordner
Eine Rolle kann Variablen an zwei Stellen definieren: defaults/main.yml und vars/main.yml. Sie sehen ähnlich aus, verhalten sich aber sehr unterschiedlich.
defaults haben eine niedrige Priorität
Werte in defaults/main.yml haben die niedrigste Priorität. Sie sind unverbindliche Vorgaben, die von fast allem anderen überschrieben werden können.
# defaults/main.yml
http_port: 80
workers: 4vars haben eine hohe Priorität
Werte in vars/main.yml haben eine hohe Priorität. Es handelt sich um feste Vorgaben, auf denen die Rolle besteht und die sich nur schwer überschreiben lassen.
# vars/main.yml
config_path: /etc/myappdefaults sind Ihre öffentliche API
Legen Sie alles, was Benutzer anpassen könnten, in defaults ab. Das signalisiert: Ändern Sie mich ruhig. So entwerfen Sie eine benutzerfreundliche, wiederverwendbare Rolle.
vars sind interne Konstanten
Verwenden Sie vars für Werte, die die Rolle zum Funktionieren benötigt und die Benutzer nicht ändern sollten, etwa einen internen Pfad oder einen festgelegten Paketnamen.
Einen default einfach überschreiben
Benutzer können einen default-Wert aus group_vars, host_vars, dem Play oder der Befehlszeile überschreiben. Die einfachste Überschreibung greift sofort.
roles:
- role: web
vars:
http_port: 8080Einen vars-Wert zu überschreiben ist schwierig
Die vars einer Rolle haben Vorrang vor group_vars, host_vars und Play-Variablen. Nur extra-vars aus der Befehlszeile haben eine höhere Priorität. Verwenden Sie vars daher sparsam.
Extra Vars gewinnen immer
Variablen, die mit -e in der Befehlszeile übergeben werden, stehen über allen anderen Quellen, einschließlich der vars einer Rolle. Sie sind die letztmögliche Überschreibung.
ansible-playbook site.yml -e http_port=9090Die gedankliche Reihenfolge
Merken Sie sich die Rangfolge: defaults ganz unten, danach Inventar- und Play-Variablen, dann die vars einer Rolle weit oben und schließlich extra-vars über allen anderen.
Tipp für den Entwurf
Bevorzugen Sie für fast alles defaults. Verwenden Sie vars nur, wenn ein Wert tatsächlich unveränderlich bleiben muss. Flexible Rollen halten Teams zufrieden.
Defaults dokumentieren
Kommentieren Sie jeden Wert in defaults/main.yml. Da Benutzer diese Werte anpassen werden, machen klare Hinweise Ihre Rolle zu einer selbsterklärenden Automatisierung.
Kurzer Check
Überlegen Sie, in welcher Datei ein Benutzer einen Wert am einfachsten überschreiben kann.
Zusammenfassung
Verwenden Sie defaults für anpassbare Werte, die Benutzer überschreiben, und vars für unveränderliche interne Konstanten. Extra-vars über die CLI schlagen alles andere. 🎚️
Häufig gestellte Fragen
Ist die Lektion „defaults und vars: Die Reihenfolge beim Überschreiben“ kostenlos?
Ja — der vollständige Text von „defaults und vars: Die Reihenfolge beim Überschreiben“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ansible Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „defaults und vars: Die Reihenfolge beim Überschreiben“?
Entwerfen Sie klare Schnittstellen für Rollenvariablen. Du übst Ansible Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Ansible Academy zu starten?
Keine Vorkenntnisse erforderlich. Ansible Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „defaults und vars: Die Reihenfolge beim Überschreiben“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Ansible Academy-Lektion Code schreiben und ausführen?
Ja. Jede Ansible Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Rollenabhängigkeiten in meta/main.yml
- defaults und vars: Die Reihenfolge beim Überschreiben
- include_role und import_role zur Laufzeit
- allow_duplicates und Idempotenz von Rollen