Я перечитывал приоритет vars
в Ansible, и я не уверен, является ли поведение, которое я получаю, разработанным или нет.Вот мой инвентарь Ansible:
---
all:
children:
we:
children:
workers:
hosts:
worker-we-vm1:
order: 1
worker-ew-vm2:
order: 2
vars:
size: "Standard_B2s"
controllers:
hosts:
controller-we-vm:
order: 1
vars:
size: "Standard_B1s"
vars:
ip_prefix: "10.60"
scus:
children:
workers:
hosts:
worker-scus-vm1:
order: 1
worker-scus-vm2:
order: 2
vars:
size: "Standard_B2s"
vars:
ip_prefix: "10.61"
vars:
azure_profile: "test"
Теперь я ожидаю, что для we
виртуальных машин (например, worker-we-vm1
) будет установлено ip_prefix
на 10.60
, а для виртуальных машин scus
(например, worker-scus-vm1
) будет иметь ip_prefix
, установленный на 10.61
при доступе к hostvars
.Но это не так, на всех виртуальных машинах ip_prefix
установлено значение 10.60
.
Может кто-нибудь помочь с пониманием, почему приоритет vars
не работает должным образом?Я прочитал https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html, и кажется, что это противоречит тому, как обрабатываются родительские переменные и переменные одного уровня.