带_子元素的Ansible剧本

带_子元素的Ansible剧本,ansible,ansible-playbook,Ansible,Ansible Playbook,带有_子元素的Ansible playbook错误为3级 我的配置看起来像 --- Firstlevel: - fl_number: fln1 fl_data: fld1 Secondlevel: - sl_number: sln_f1_1 sl_data: sld_f1_1 Thirdlevel: - tl_number: tln_s1_f1_1 tl_data: tld_s1_f

带有_子元素的Ansible playbook错误为3级

我的配置看起来像

---
Firstlevel:
    - fl_number: fln1
      fl_data: fld1

      Secondlevel:
      - sl_number: sln_f1_1
        sl_data: sld_f1_1
        Thirdlevel:
        - tl_number: tln_s1_f1_1
          tl_data: tld_s1_f1_1
        - tl_number: tln_s2_f1_2
          tl_data: tld_s2_f1_2
Ansible的剧本是

>cat test_threelevels.yml
---
 - hosts: localhost
   gather_facts: no
   vars_files:
      - ../vars/testConfig-var.yml


tasks:

    - name: DebugWorks
      debug: msg="{{ item.1.Thirdlevel }}"
      with_subelements:
      - Firstlevel
      - Secondlevel

    - name: DebugDoesNotWork
      debug: msg=" Sub element Thirdlevel test"
      with_subelements:
      - Firstlevel
      - Secondlevel
      - Thirdlevel
当它以 ansible playbook-v测试三级.yml

任务“DebugWorks”工作,但任务“debugdoesnoworks”不工作

输出 任务:[调试不工作]****************************************************** 致命:[localhost]=>子元素查找需要包含两个项目的列表,第一个是dict或列表,第二个是字符串

FATAL: all hosts have already failed -- aborting

PLAY RECAP ********************************************************************
需要帮助了解这是否是正确的方法以及为什么不起作用

欢迎任何建议


谢谢。

错误描述至少含糊地说明了它的意思。:)

准确地看到错误意味着这里<代码>术语是您传递的列表

        if not isinstance(terms, list) or not 2 <= len(terms) <= 3:
如果不存在(术语、列表)或不存在2