Переменная Ansible над хостами
привет, можно ли создать такую переменную для нескольких хостов?
vars:
some_vars: "./Prometheus/roles/" # <---- THIS Variable?
- hosts: lxd1
vars_files:
- Prometheus/vars/grafana_vars.yml
become: true
roles:
- '{{ some_vars }}Stouts.grafana' <--- var usage
- hosts: lxd1
vars_files:
- Prometheus/vars/exporters_common_vars.yml
become: true
roles:
- './Prometheus/roles/ansible-prometheus-exporters-common'
Нет, это недопустимый синтаксис в сборнике пьес. В playbook нет возможности включить вары, которые будут применяться ко всем играм.
Если вы хотите, чтобы переменные применялись к нескольким играм, и поэтому несколько хостов определяют их в вашем инвентаре или group_vars.
Вы также можете передавать переменные из командной строки, если вам нужны переменные для применения во многих играх, используя -e
вариант.
Как упоминалось в сообщении @Zoredache, я бы использовал group_vars, чтобы определить группу для применения vars ко всем хостам.
Для этого я бы использовал следующий файл инвентаризации:
[dev-servers] # inventory for dev servers
dev1.example.com
dev2.example.com
[production-servers] # inventory for production servers
prod1.example.com
prod2.example.com
[allvars:children] # group vars to apply for all hosts
dev-servers
production-servers
[productionvars:children] # group vars to apply for only production
production-servers
[devvars:children] # group vars to apply for only dev
dev-servers
Тогда вам нужно будет создать посвящение group_vars file
для allvars group
, пожалуйста, найдите здесь пример макета каталога:
inventory_host # inventory file
group_vars/
allvars.yml # here we assign variables to all hosts
productionvars.yml # here we assign variables to only prod hosts
devvars.yml # here we assign variables to only dev hosts