Написал несколько ролей для ansible в которых указал переменные в разделе default, но необходимо что бы переменные брались из инвентори или одно места. Как это сделать?
Вот пример:
# tasks file for etcd
- name: Update the package lists
shell: apt-get update
- name: Install etcd
ansible.builtin.apt:
pkg:
- etcd
state: latest
update_cache: true
- name: copy config etcd
shell: cp -p /etc/default/etcd /etc/default/etcd.orig
- name: create config etcd
template:
src: etcd.j2
dest: /etc/default/etcd
mode: 0644
notify: restart etcd
Есть вот такой файл etcd.j2
ETCD_LISTEN_PEER_URLS="http://{{ ip_etcd }}:2380"
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379,http://{{ ip_etcd }}:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://{{ ip_etcd }}:2380"
ETCD_INITIAL_CLUSTER="default=http://{{ ip_etcd }}:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://{{ ip_etcd }}:2379"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
Переменная ip_etcd указана в default но хочу что бы он её брал из инвентори так как эта переменная еще используется и в других ролях но так же прописана в default. Хотелось бы централизовать все переменные которые нужны нескольким ролям.