ANSIBLE 如何在 host_vars 文件中找到 dict?

ANSIBLE 如何在 host_vars 文件中找到 dict?

我尝试掌握 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:”行,一切就正常了:)。

相关内容