Лучше не иметь слишком много источников правды, но я всегда стараюсь установить интеллектуальные значения по умолчанию в defaults/main.yml
.Я также часто использую фильтр default()
, например:
db_url : "{{ DB_HOST }}:{{ db_port | default(1521) }}:{{ DB_SVC | default(SID|default('')) }}"
Тогда книга воспроизведения всегда может перезаписать переменную роли с помощью поиска, в котором по умолчанию используется литерал -
vars:
db_port: "{{ lookup('env','db_port')|default('9999') }}"
или со значением, динамически записанным в файл vars_file перед началом воспроизведения, или в файл хоста или файл групп, или в командную строку ANSIB с --extra-vars
и т. д.
Посмотрите на правила приоритета переменных , но будьте осторожны, чтобы не стать слишком сложным, если этого можно избежать.Гибкость - это хорошо, но ПОЦЕЛУЙ, иначе «этот путь кроется в безумии ...»