it-swarm.com.de

Ansible. Schneller Weg, um die Syntax zu überprüfen?

Gibt es eine Möglichkeit, die Syntax und die Variablen des Playbooks zu überprüfen?

Ich versuche trocken zu laufen (- check), aber aus einigen Gründen funktioniert es sehr langsam. Es sieht so aus, als würde versucht, eine Aktion auszuführen, anstatt nur die Syntax zu überprüfen

Ich möchte folgende Fehler auslassen:

..."msg": "AnsibleUndefinedVariable: ERROR! 'application_name' is undefined"}
35
kharandziuk

Dies ist das erwartete Verhalten gemäß der Dokumentation:

Wenn ansible-playbook mit --check ausgeführt wird, werden auf entfernten Systemen keine Änderungen vorgenommen. Stattdessen meldet jedes Modul, das den „Prüfmodus“ unterstützt (der die meisten primären Kernmodule enthält, es ist jedoch nicht erforderlich, dass alle Module dies tun), welche Änderungen sie vorgenommen hätten, anstatt sie vorzunehmen. Andere Module, die den Überprüfungsmodus nicht unterstützen, werden ebenfalls keine Maßnahmen ergreifen, sondern nur nicht darüber berichten, welche Änderungen sie möglicherweise vorgenommen haben.

http://docs.ansible.com/ansible/playbooks_checkmode.html

Wenn Sie die YAML-Syntax überprüfen möchten, können Sie die Syntaxprüfung verwenden.

ansible-playbook rds_prod.yml  --syntax-check
playbook: rds_prod.yml
44
Istvan

Ich war auf der Suche nach dem gleichen, war aber nicht zufrieden mit dem --syntax-check -Option, da es sich nicht bis zu den Rollen hinunterarbeitet. Eine vollständigere Prüfung kann mit ansible-lint durchgeführt werden, was auch Stilprüfungen einschließt. Wenn Sie jedoch alle Stilprüfungen deaktivieren, haben Sie eine ziemlich vollständige Syntaxprüfung.

Also mach sowas

ansible-lint -x $(echo $(ansible-lint -L | awk -F':' '{print $1}' | grep '^[^ ]') | tr ' ' ',') my_playbook.yml
2
alex4532