Заставить Ansible выдать ошибку, если в yml отсутствует vars?


8

Можно ли принудительно вызвать Ansible при замене переменной в файлах yml, которая не определена, и вместо этого тихо заменить пустую строку?

Ответы:


9

Да, это возможно. Проверьте онлайн-документацию в разделе доступа к сложным переменным данным .

Пример предоставлен, чтобы сделать именно это:

tasks:
    - shell: echo "I've got '{{ foo }}' and am not afraid to use it!"
      when: foo is defined

    - fail: msg="Bailing out: this play requires 'bar'"
      when: bar is not defined

8

Добавьте эту строку в [defaults]раздел вашего ansible.cfg:

error_on_undefined_vars = True

Теперь вы получите сообщение об ошибке, если переменная не определена.


Я считаю, что для этого варианта требуется 1.3, который скоро появится, но еще не выпущен.
Мблакеле

1

Определите ваши переменные в

roles/<role_name>/defaults/main.yml

подобно:

SUPERVAR:
  VAR1:foo
  VAR2:bar

а затем сделать в

roles/<role_name>/tasks/main.yml

подобно:

- fail: msg="{{ item }} is not defined"
  when: not {{ item }}
  with_items:
    - SUPERVAR.VAR1
    - SUPERVAR.VAR2
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.