![ANSIBLE 如何在 host_vars 文件中找到 dict?](https://linux22.com/image/734874/ANSIBLE%20%E5%A6%82%E4%BD%95%E5%9C%A8%20host_vars%20%E6%96%87%E4%BB%B6%E4%B8%AD%E6%89%BE%E5%88%B0%20dict%EF%BC%9F.png)
我尝试掌握 ansible 中字典的使用方法。当我将 dict 添加到 playbook 中时,例子一切都很顺利。但是当我尝试将 vars 块包含到我的 host_vars/myserv.yml 文件中时,如下所示:
主机变量/myserv.yml<- 语法错误,不要使用此示例!
vars:
users:
alice:
name: Alice Appleworth
telephone: 123-456-7890
bob:
name: Bob Bananarama
telephone: 987-654-3210
剧本.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:问题很简单 - 只需从 host_vars 文件中删除“vars:”行一切工作顺利:)。
问候
答案1
UPD:问题很简单 - 只需从 host_vars 文件中删除“vars:”行,一切就正常了:)。