web-dev-qa-db-fra.com

Ansible. Moyen rapide de vérifier la syntaxe?

Est-il possible de vérifier la syntaxe et les variables de Playbook?

J'essaie de faire un essai à sec (- vérifier), mais pour certaines raisons, cela fonctionne très lentement. On dirait qu'il essaie d'exécuter une action au lieu de simplement vérifier la syntaxe

Je veux omettre des erreurs comme ceci:

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

Ceci est le comportement attendu selon la documentation:

Quand ansible-playbook est exécuté avec --check, il n’apportera aucune modification sur les systèmes distants. À la place, tout module conçu pour prendre en charge le ‘mode de vérification’ (qui contient la plupart des modules de base principaux, mais il n’est pas obligatoire que tous les modules le fassent) rendra compte des modifications qu’ils auraient apportées plutôt que de les apporter. Les autres modules qui ne prennent pas en charge le mode de vérification ne prendront aucune action, mais ne feront tout simplement pas état des modifications apportées.

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

Si vous souhaitez vérifier la syntaxe YAML, vous pouvez utiliser le contrôle de syntaxe.

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

Je cherchais le même, mais je n'étais pas satisfait du --syntax-check _ option, car elle n’atteint pas les rôles. Une vérification plus complète peut être effectuée avec ansible-lint , qui comprend également des vérifications de style. Mais si vous désactivez toutes les vérifications de style, vous obtenez une vérification de syntaxe assez complète.

Alors fais quelque chose comme

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