Какова политика Ansible для определения переменных и констант в каталоге vars, defaults или tasks?
Я прочитал несколько документов, включая этот, и проверил несколько доступных ролей на GitHub, но мне неясно, когда определять переменную и когда определено, где ее поместить, т.е. в defaults
, tasks
или же vars
каталог.
Я хотел бы получить руководящие указания, чтобы мне не пришлось тратить много времени на размышления о том, требуется ли переменная, и если это так, то где ее поставить.
по умолчанию
sensu_host: localhost
sensu_home: /etc/sensu
sensu_conf_d: "{{ sensu_home }}/conf.d"
- name: be sure {{ item }} is installed
apt:
name: "{{ item }}"
state: latest
with_items:
- build-essential
- ntp
или элементы должны быть определены в переменной:
- name: be sure {{ item }} is installed
apt:
name: "{{ item }}"
state: latest
with_items:
{{ packages }}
__sensu_repo_url: deb http://sensu.global.ssl.fastly.net/apt sensu main
__sensu_repo_key_url: http://sensu.global.ssl.fastly.net/apt/pubkey.gp
Есть ли определенный контрольный список, например
Если a, b, c, то переменная должна быть объявлена по умолчанию
если d, e, f, то v
если г, ч, я тогда определить его в задачах
╔═══════════╦═════════════════╗
║ directory ║ characteristics ║
╠═══════════╬═════════════════╣
║ defaults ║ constants, e.g. ║
║ tasks ║ bla, e.g. ║
║ vars ║ variables ║
╚═══════════╩═════════════════╝
1 ответ
В каталоге vars and defaults отсутствуют политики для определения переменных и констант.
Переменные в role/defaults
каталог имеет самый низкий приоритет. Поэтому имеет смысл поместить все переменные, определенные в роли, в role/defaults/main.yml
для справки. Если значение переменной по умолчанию зависит от дистрибутива, я помещаю его в vars/{{ ansible_os_family }}.yml
и включите это так:
# Variable setup.
- name: Include OS-specific variables.
include_vars: "{{ ansible_os_family }}.yml"
Я также поместил переменные, которые являются своего рода константы, такие как URL-адреса под vars
также.
Но опять-таки нет реальной политики. Это зависит от вас, как делать вещи. Я лично ориентирую свою ролевую структуру и стиль игры на geerlingguy.