Есть еще одна опция, которая позволяет больше контролировать обработку ARP. Взгляните на arp_ignore
.
В моем тестировании ansible-playbook --syntax-check
правильно установил код выхода на основании синтаксических ошибок в playbook. Вы можете поверить мне на слово, что хороший -пример и плохой -пример плейбуков ведут себя так, как указано.
Хороший файл:
$ ansible-playbook --syntax-check good-example.yaml
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match
'all'
playbook: good-example.yaml
$ echo $?
0
... и битый файл:
$ ansible-playbook --syntax-check bad-example.yaml
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match
'all'
ERROR! 'xhosts' is not a valid attribute for a Play
The error appears to have been in '/.../bad-example.yaml': line 2, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
---
- xhosts: all
^ here
$ echo $?
4
Итак, я считаю, что вы могли бы выполнить проверку синтаксиса -так, как вы предлагаете:
ansible-playbook --syntax-check example.yml && ansible-playbook example.yml
... хотя может быть спокойнее отказаться от вывода из части проверки синтаксиса:
ansible-playbook --syntax-check example.yml >/dev/null 2>&1 && ansible-playbook example.yml
Примечание:Вы можете обернуть все это в функцию, чтобы не печатать:
safe-ansible() {
ansible-playbook --syntax-check "$@" > /dev/null 2>&1 &&
ansible-playbook "$@"
}