При создании новой роли Ansible шаблон создает каталог vars
и defaults
с пустым main.yml
файлом. При определении моей роли я могу разместить определения переменных в любом из них, и они будут доступны в моих задачах.
В чем разница между помещением определений в defaults
и vars
? Что должно войти в defaults
, и что должно быть в vars
? Имеет ли смысл использовать оба для одних и тех же данных?
Я знаю, что есть разница в приоритете/приоритете между ними, но я хотел бы понять, что должно идти туда.
Скажем, что моя роль создаст список каталогов в целевой системе. Я хотел бы предоставить список каталогов по умолчанию, которые нужно создать, но хотел бы, чтобы пользователь мог переопределить их при использовании роли.
Вот что это будет выглядеть:
---
- directories:
- foo
- bar
- baz
Я мог бы разместить это либо в defaults/main.yml
, либо в vars/main.yml
, с точки зрения выполнения, это не имело бы никакого значения - но куда оно должно идти?