@AleksandrMalinovskiy

Как в ролях ансибл указывать переменные которые будут назначаться из инвентори файла?

Написал несколько ролей для 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. Хотелось бы централизовать все переменные которые нужны нескольким ролям.
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
@MaxKozlov
они и так будут браться из ивентори.
default - это именно default, то есть если не указано нигде

Variable precedence: Where should I put a variable?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы