Итак, я использую playbook, основанный на group_vars, которые используются для предоставления настроек IIS для самых разных веб-сайтов.
Group_vars состоит из 2 основных dicts (один из них содержит сложные списки dicts или списки dicts.)
В сложном есть ссылки на переменные из firstdict в Jinja2 (например, {{firstdic.sitename}})
Это отлично работает с group_vars, ссылки обрабатываются движком jinja2 в Ansible. Но когда дело доходит до динамического инвентаря, при ссылке на vars из первого dict весь dict сбрасывается.
А вот и JSON (из моего динамического инвентаря):
"firstdict": { "sitename": "mysitename" }
"complexdict": {"someotherdict": {"sitepath": "{{ firstdict.sitename }}"}}
При использовании этого JSON модуль отладки обнаружит, что complexdict не определен.
Однако часть jinja2 правильно анализируется и выполняется, так как это будет работать.
Ввод динамического инвентаря:
"complexdict": {"someotherdict": {"sitepath": "{{ \"foo\" }}"}}
Модуль отладки возвращает:
"complexdict": {
"someotherdict": {
"sitepath": "foo"
}
}
Есть ли проблема с приоритетом переменных? Что еще я должен знать, почему это не может работать так?
Спасибо за помощь, мастера Ansible :)
PS: Я уже много пробовал эмпирическим экранированием, экранированием фигурных скобок, двойных кавычек и так далее.