Size: a a a

2021 March 05

VZ

Vladimir Zhurkin in Ansible
@tgadiev вообще такое иногда надо между инвентори и тогда делают симлинк , но это очень опасный путь  =)
источник

К

Казанский in Ansible
Зачем её хранить в group_vars, если она относится к одному хосту, а не к группе?
источник

VZ

Vladimir Zhurkin in Ansible
Казанский
Внутри этого hostvars лежит переменная с его IP
вам уже про вложенность говорили Не надо так делать
источник

VZ

Vladimir Zhurkin in Ansible
Казанский
Зачем её хранить в group_vars, если она относится к одному хосту, а не к группе?
зачем она нужна группе ?
источник

К

Казанский in Ansible
Vladimir Zhurkin
зачем она нужна группе ?
Чтобы в других hostvars ссылаться не на hostvars['bastion']['ip_addr'], а на bastion_ip
источник

VZ

Vladimir Zhurkin in Ansible
зачем ?
источник

К

Казанский in Ansible
DRY
источник

TG

Timur Gadiev in Ansible
Казанский
Внутри этого hostvars лежит переменная с его IP
Еще раз. Переменные из group_vars должны спускаться на уровень hostvars, а не наоборот. Попытка сделать наоборот чревата неожиданными спецэффектами, что мы и наблюдаем.
источник

К

Казанский in Ansible
bastion это просто как пример, есть много других ситуаций, где вместо hostvars['bastion'] нужно менять этот bastion на другой хост, на другую переменную. И получается, что нужно менять значение одной переменной в group_vars, чем ходить во все хостварсы и менять его везде.
источник

TG

Timur Gadiev in Ansible
источник

TG

Timur Gadiev in Ansible
Казанский
bastion это просто как пример, есть много других ситуаций, где вместо hostvars['bastion'] нужно менять этот bastion на другой хост, на другую переменную. И получается, что нужно менять значение одной переменной в group_vars, чем ходить во все хостварсы и менять его везде.
Еще раз напоминаю. Ходить напрямую на hostvars - так себе затея
источник

TG

Timur Gadiev in Ansible
И если уж требуется такое, то это имеет смысл делать только на уровне плея. Но никак не в инвентаре.
источник

К

Казанский in Ansible
Timur Gadiev
Еще раз. Переменные из group_vars должны спускаться на уровень hostvars, а не наоборот. Попытка сделать наоборот чревата неожиданными спецэффектами, что мы и наблюдаем.
Такой антипаттерн где-нибудь описывается? Кроме этого момента, не сталкивался с проблемами нигде.
источник

К

Казанский in Ansible
Timur Gadiev
И если уж требуется такое, то это имеет смысл делать только на уровне плея. Но никак не в инвентаре.
Давайте попробую на уровне плея задать переменную из hostvars
источник

К

Казанский in Ansible
Она ожидаемо сработает, но тогда теряется всё удобство
источник

ДА

Дмитрий Айткулов... in Ansible
Ребят подскажите плиз -  запускаю playbook (ansible=2.7.18  python=2.7.5.)
на kvm (ubuntu 20 ansible=2.7.18 python=3.8.5)
задача запустить vm
virt:
   name: "vm"
   state: "running"
 
в ответ получаю "msg": "The libvirt module is not importable. Check the requirements."
поставил пакет python3-libvirt/focal,now 6.1.0-1 amd64 [installed]
но проблема не решилась. Где затуп не пойму?! Заранее спасибо
источник

TG

Timur Gadiev in Ansible
Казанский
Такой антипаттерн где-нибудь описывается? Кроме этого момента, не сталкивался с проблемами нигде.
By default variables are merged/flattened to the specific host before a play is run. This keeps Ansible focused on the Host and Task, so groups don’t really survive outside of inventory and host matching.
источник

TG

Timur Gadiev in Ansible
The order/precedence is (from lowest to highest):

all group (because it is the ‘parent’ of all other groups)

parent group

child group

host
источник

TG

Timur Gadiev in Ansible
Вы же пытаетесь из одного уровня обращаться напрямую к более нижнему, на который спускается верхний
источник

TG

Timur Gadiev in Ansible
Это рекурсия
источник