Я пытаюсь создать роль, вдохновленную этим: ansible-cassandra.Как использовать значение значения по умолчанию через `hostvars`
В этой роли есть значение по умолчанию для переменной cassandra_network_iface
:
cassandra_network_iface: eth0
и файл шаблона cassandra.yaml.j2, которые используют его через hostvars
:
...
- seeds: "{% for host in groups[cassandra_ansible_groupname] %}{{hostvars[host]['ansible_' + hostvars[host]['cassandra_network_iface']]['ipv4']['address']}}{% if not loop.last %},{% endif %}{% endfor %}"
...
Когда я используйте этот файл шаблона с заданием:
- name: configure...
template: >-
src=cassandra.yaml.j2
dest=/tmp/cassandra.yaml
mode=0644
У меня есть эта ошибка:
fatal: [...]: FAILED! => {"changed": false, "failed": true, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'cassandra_network_iface'"}
Проблема переменно cassandra_network_iface
не определен в hostvars[host]
сферу (я проверил, что с задачей отладки), в противном случае я могу использовать его непосредственно.
Мой вопрос: есть ли способ добраться до переменной cassandra_network_iface
через hostvars
?
Примечание: Я попытался с анзиблем 2.1 и 2.2
Я не думал об этом, он работает, спасибо –