在ansible任务中引用字典变量值

在ansible任务中引用字典变量值,ansible,ansible-2.x,ansible-facts,ansible-template,Ansible,Ansible 2.x,Ansible Facts,Ansible Template,团队, 我有一个任务,我试图引用我的值文件中定义的字典中的值。但是下面的错误,有什么提示吗?我做这个练习是为了在以后的其他任务中使用这个引用,但是第一个调试步骤本身失败了 我参考了这个链接[翻译目录参考][1] 价值观 loop_device: "loop" available_device_default_config: - device: any partitions: - number: 1 start: 0% e

团队, 我有一个任务,我试图引用我的值文件中定义的字典中的值。但是下面的错误,有什么提示吗?我做这个练习是为了在以后的其他任务中使用这个引用,但是第一个调试步骤本身失败了

我参考了这个链接[翻译目录参考][1]

价值观

loop_device: "loop"
available_device_default_config:
  - device: any
    partitions:
      - number: 1
        start: 0%
        end: 100%
        storage_class: services
任务

任务输出错误

34  TASK [local_volume_mount : lookup dictionary vars] *****************************
  Wednesday 28 April 2021  21:51:34 +0000 (0:00:04.915)       0:00:05.052 ******* 
  ok: [node1] => {
      "available_device_default_config.device": "VARIABLE IS NOT DEFINED!"
  }
预期产出:

ok: [node1] => {
      "any"
  }
我在下面试过,但没有成功

变量:{{available\u device\u default\u config.device}

变量:{{available_device_default_config['device']}

变量available_device_default_config被定义为DICT的列表。因此,您无法直接访问属性设备,因为它是可用的\u设备\u默认\u配置中第一项的属性。您需要通过可用的\u设备\u默认\u配置[0]查看它

结果将是

TASK [set facts] ****************************************************************
ok: [localhost]

TASK [lookup dictionary vars] ***************************************************
ok: [localhost] => 
  msg:
  - device: any
    partitions:
    - end: 100%
      number: 1
      start: 0%
      storage_class: services

TASK [lookup dictionary vars] ***************************************************
ok: [localhost] => 
  msg: any

我添加了预期的输出,我可以通过直接烘焙到任务中的静态值来实现。您是否可以提示如何使用名称而不是索引0进行搜索?对于设备值,什么是子键值?
- name: "set facts"
  set_fact:
    available_device_default_config:
      - device: any
        partitions:
          - number: 1
            start: 0%
            end: 100%
            storage_class: services

- name: "lookup dictionary vars"
  debug:
    msg: "{{ available_device_default_config }}"

- name: "lookup dictionary vars"
  debug:
    msg: "{{ available_device_default_config[0].device }}"
TASK [set facts] ****************************************************************
ok: [localhost]

TASK [lookup dictionary vars] ***************************************************
ok: [localhost] => 
  msg:
  - device: any
    partitions:
    - end: 100%
      number: 1
      start: 0%
      storage_class: services

TASK [lookup dictionary vars] ***************************************************
ok: [localhost] => 
  msg: any