переменной?
у меня есть ansible_host, имеющий именование stage-scan
при попытке обратиться к фактам вида stage-scan.ansible_host - возвращает VARIABLE IS NOT DEFINED
переименовываю в stage_scan, начинает работать, что логично
переименовать hosts в инвентори и перепилить плейбук, возможно, но очень затратно )
Переписывай. Нормально делай, нормально будет.
Обращайся через квадратные скобки: global_vars["my-little-bunny"]
Что за переменная и как она у тебя объявлена?
есть инвентарь, в котором описаны хосты и группы stage: hosts: stage-scan: ansible_host: 172.31.0.74 prod: hosts: prod-scan: ansible_host: 172.32.0.74 нужно обратиться к переменной stage-scan.ansible_host
При выполнении плея на этом же хосте или другом?
при выполнении плея на другом хосте инвентарь подгружаю как файл vars_files: - hosts.yml
Инвентарь так не надо подгружать 😢 К переменным другого хоста можно обратиться через hostvars
исходная задача - сформировать файл через темплейт в темплейте использовать всяческие переменные, в том числе и ansible_host , с фильтрацией по группам )
Загружай инвентарь как простой ямлик. Это будет твой контекст.
разреши уточнить, о чем идет речь?
ansible-playbook -i /path/to/inventory.yml -i /path/to/second/inventory.yml
В ансибле есть load_yaml (или что-то похожее), который загружает файл. При шаблонизации тебе нужен контекст шаблона и сам шаблон. Вот инвентарь загрузи в переменную, которая будет контекстом шаблона.
можно же переопределить инвентори как директорию и сразу инклюдить много файлов :)
Есть переменные groups и т.п. Тоже вариант. Но попахивает ересью.
Можно и так, кому как больше нравится / какая архитектура.
from_yaml идею понял, спасибо
Обсуждают сегодня