Ansible Playbook YAML-Formatter
Führung
Ansible Playbook YAML-Formatter
Ein beliebiges Ansible-Playbook oder Aufgabendatei einfügen und ein konsistenter, formatierter YAML mit Aufgaben-Schlüsseln in der kanonischen Reihenfolge zurückgeben (name → Modul → args → loop → when → register → notify). Das Tool erkennt, ob ein Playbook oder eine Aufgabensammlung eingegeben wurde, validiert die Struktur und zeigt ansible-lint-Stilhinweise — vollständige FQCN-Modulnamen, fehlende changed_when, command-anstelle-Modul, und alte yes/no wahrheitswerte — damit Ihre Playbooks beim ersten Durchlauf die Prüfung bestehen.
Nutzung
- Fügen Sie Ihr Ansible-YAML in das Eingabefeld ein — ein vollständiges
playbook.yml, eine Rolle’stasks/main.yml, oder eine beliebige Aufgabensammlung. - Verlassen Aufgaben-Schlüssel neu ordnen um die konventionelle Aufgaben-Schlüssel-Reihenfolge von ansible-lint anzuwenden, oder deaktivieren Sie es, um Ihre ursprüngliche Reihenfolge beizubehalten.
- Beibehalten Struktur des Ansible-Playbooks validieren für Prüfungen der Aufgaben- und Play-Struktur (fehlende
hosts, Aufgaben ohne Modul, falsch formatierteblock). - Umschalten Ansible-lint-Stilhinweise anzeigen für praktische Hinweise wie vollständige FQCN-Modulnamen, fehlende Namen und Warnungen für Idempotenz.
- Kopieren Sie das formatierte Ergebnis oder speichern Sie es als
playbook.yml.
Funktionen
- Konventionelle Aufgaben-Schlüssel-Reihenfolge –
namezuerst, dann das Modul, dannargs,loop,when,register,notify— die Reihenfolge, die ansible-lint erwartet. - Erkennung von Playbook und Aufgabensammlung – Wird automatisch die Play-Ebene-Ordnung (
hosts,vars,pre_tasks,tasks,post_tasks,handlers) bei Erkennung eines Playbooks angewendet. - Block / rescue / always bewusst – Ordnet die verschachtelten Block-Aufgaben neu an, ohne deren Semantik zu beeinträchtigen.
- Strukturelle Validierung – Markiert Plays, die fehlende
hosts, Aufgaben ohne Modul, falsch formatierte Listen und unbekannte Play-Ebene-Schlüssel haben. - FQCN-Hinweise – Vorschläge für
ansible.builtin.aptanstatt fürapt, Übereinstimmung mitfqcn[action-core]. - Idempotenz-Hinweise – Warnung bei
command/shelldie ohnechanged_when,creates, oderremoves. - befehl-anstelle-Modul-Erkennung – Erkennung von installierten Paketen, systemctl-Aufrufen, git-Klonen und pip-Installierungen, die erste Klasse-Module haben.
- Legacy-Wahrheits-Erkennung – Markiert
yes/no/on/offWerte, die stattdessentrue/false(yaml[truthy]). - Veraltete Schleifenwarnungen – Markiert
with_items,with_dictund Freunde, damit Sie zuloop:. - Laufend im Browser wechseln können – nichts wird hochgeladen; Ihr Inventar und Ihre Geheimnisse bleiben lokal.
Häufig gestellte Fragen
-
Warum kümmert sich ansible-lint um die Aufgaben-Schlüsselreihenfolge?
Konsistente Schlüsselreihenfolge macht Playbooks lesbar: die Absicht der Aufgabe (
name) wird zuerst gelesen, dann das Modul, das die Aktion durchführt, dann die Argumente und schließlich die Steuerfluss-Elemente (loop,when,register,notify). Wenn alle Teammitglieder dieselbe Reihenfolge befolgen, bleiben die Differenzen auf echte Änderungen beschränkt, anstatt sich auf ästhetische Umstellungen zu konzentrieren, und die Prüfer können Aufgaben sofort erkennen. -
Was ist FQCN und warum wird es für Module verwendet?
FQCN steht für Fully Qualified Collection Name — die vollständige
namespace.collection.modulePfad, wieansible.builtin.aptanstatt nurapt. Seit Ansible 2.10 wurden Module in Sammlungen aufgeteilt, wodurch kurze Namen mehrdeutig sein können, wenn mehrere Sammlungen ein Modul mit dem gleichen kurzen Namen liefern. FQCNs machen die Auflösung explizit, dokumentieren die Quelle jedes Moduls und schützen Playbooks vor Änderungen der Sammlungsreihenfolge. -
Wann sollte ich loop: anstatt with_items: verwenden?
Der
with_*Lookup-basierte Schleifen waren ursprünglich die Methode, um zu iterieren, aber sie verbinden Iteration mit Lookup-Plugins, was die Komponierbarkeit einschränkt. Dasloop:Schlüsselwort (eingeführt in 2.5) nimmt eine beliebige Liste direkt auf und verbindet sich sauber mitloop_controlfür Indexierung, Labels und Pausen. Bei einfachen Listeniterationen bevorzugen Sie immerloop:; nur fällt zurück aufwith_*für die wenigen Muster, die noch keine saubereloopÄquivalente haben. -
Warum wird „yes“ in YAML als veraltet in Ansible betrachtet?
YAML 1.1 behandelt
yes,no,on,off,trueundfalseals Boolesche Werte. YAML 1.2 hat die Booleschen Werte auf nurtrue/falsebeschränkt. Um vorwärtskompatibel und eindeutig zu bleiben – besonders wenn YAML-Werte später von Tools außerhalb von Ansible verarbeitet werden – empfiehlt ansible-lint die Verwendung vonyaml[truthy]. Die Verwendung der strengen Booleschen Werte vermeidet Überraschungen, wenn ein Literal-String als Daten benötigt wird.trueundfalseWarum sollte changed_when auf command/shell-Aufgaben deklariert werden?yesAnsible bestimmt, ob eine Aufgabe das System verändert, indem es die Modul-Ausgabedaten prüft. Die -
Module können dies nicht selbst erkennen – sie betrachten jede erfolgreiche Ausführung als Änderung, was zu falschen Idempotenzprüfungen führt. Die Deklaration von
(oder die Verwendung von
command,shellundraw) ermöglicht es, die tatsächliche Änderungsbedingung zu kodieren: ein bestimmter Exit-Code, ein Ausgabemuster oder eine Datei-Markierung. Idempotente Playbooks werden ruhiger und besser diff-bar.changed_whenwurde am 8. Juni 2026 hinzugefügtcreates/removesFügen Sie Ihr playbook.yml, Ihre Rollen oder Ihre Aufgabensammlung hier ein
Erweiterungen installieren
IO-Tools zu Ihrem Lieblingsbrowser hinzufügen für sofortigen Zugriff und schnellere Suche
恵 Die Anzeigetafel ist eingetroffen!
Anzeigetafel ist eine unterhaltsame Möglichkeit, Ihre Spiele zu verfolgen. Alle Daten werden in Ihrem Browser gespeichert. Weitere Funktionen folgen in Kürze!
Unverzichtbare Tools
Alle Neuheiten
AlleAktualisieren: Unser neuestes Werkzeug Ansible Playbook YAML Formatter 1
