Стараюсь на ансибле осваивать работу со словарями. Когда я включаю диктовку в playbook как на пример все работает как шарм. Но когда я пытаюсь включить блок vars в свой файл host_vars / myserv.yml следующим образом:
host_vars / myserv.yml <- Неправильный синтаксис, не используйте этот пример!
vars:
users:
alice:
name: Alice Appleworth
telephone: 123-456-7890
bob:
name: Bob Bananarama
telephone: 987-654-3210
playbook.yml
- name: "myserv"
hosts: "myserv"
gather_facts: yes
remote_user: root
tasks:
- name: "Ping hosts"
ping:
roles:
- {role: 'test-role'}
роли / тест-роль / задача / main.yml
- name: Print phone records
debug:
msg: "User {{ item.key }} is {{ item.value.name }} ({{ item.value.telephone }})"
loop: "{{ lookup('dict', users) }}"
Я получаю сообщение об ошибке:
FAILED! => {"msg": "An unhandled exception occurred while running the lookup plugin 'dict'. Error was a <class 'ansible.errors.AnsibleError'>, original message: with_dict expects a dict"}
Так что я упустил? Мне нужно использовать какую-нибудь опцию поиска?
UPD: проблема была довольно простой - просто удалите строку "vars:" из файла host_vars и все нормально работает :).
С уважением
UPD: проблема была довольно простой - просто удалите строку "vars:" из файла host_vars и все заработает :).