it-swarm.com.ru

Анзибль. Быстрый способ проверить синтаксис?

Есть ли способ проверить синтаксис и переменные playbook?

Я пытаюсь выполнить пробный прогон (- проверить), но по некоторым причинам он работает очень медленно. Похоже, он пытается выполнить действие, а не просто проверить синтаксис

Я хочу, чтобы опустить ошибки, как это:

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

Это ожидаемое поведение в соответствии с документацией:

Когда ansible-playbook выполняется с параметром --check, он не вносит никаких изменений в удаленные системы. Вместо этого любой модуль, оснащенный средствами поддержки "режима проверки" (который содержит большинство основных модулей ядра, но не обязательно, чтобы все модули делали это), сообщит о том, какие изменения они внесли, вместо того, чтобы вносить их. Другие модули, которые не поддерживают режим проверки, также не будут предпринимать никаких действий, но просто не сообщат, какие изменения они могли внести.

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

Если вы хотите проверить синтаксис YAML, вы можете использовать проверку синтаксиса.

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

Я искал то же самое, но не был удовлетворен --syntax-check, поскольку он не работает вплоть до ролей. Более полная проверка может быть выполнена с помощью ansible-lint , которая также включает проверки стиля. Но если вы отключите все проверки стиля, то у вас будет довольно полная проверка синтаксиса.

Так что-то вроде

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