Embora o próprio Ansible tenha uma maneira de acionar um erro personalizado , não consigo encontrar nada semelhante para Jinja.
Meu método atual usa um erro de sintaxe :
{% if 'ansible_mounts' in hostvars[host] %}
# {{ host }} knows its mount-points
{% else %}
# {% error!! No ansible_mounts listed for host - fact-gathering must've failed %}
{% endif %}
mas eles são mal renderizados em tempo de execução -- é preciso olhar dentro do arquivo de modelo e procurar o erro (a renderização nem inclui o número da linha!).
Existe uma maneira de gerar uma mensagem de falha pura de dentro do modelo Jinja?
Resposta do comentário:
Não há uma maneira fácil de fazer isso - apenas por meio de um plugin personalizado. Para obter detalhes, consulte: https://stackoverflow.com/questions/21778252/how-to-raise-an-exception-in-a-jinja2-macro
O Ansible adiciona o filtro obrigatório ao Jinja, que pode ser usado para fazer isso:
dá a falha:
(Substitua
condition_ok
pelo cheque que você precisa fazer;'OK text'
pode ser justo''
se nada for substituído.)Eu escrevi uma extensão jinja2- jinja2_error para gerar erro.
Primeiramente,
Se você usá-lo com ansible
Se você usá-lo com o ambiente jinja2
Se você quiser saber os detalhes, por favor acesse
https://github.com/mumubin/jiaja2_error
Para quem procura como filtro obrigatório, mas não usa ansible