Ansible playbook with_subelements错误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 test_threelevels.yml
任务" DebugWorks"但是任务" DebugDoesNotWork" dosent。
输出 任务:[DebugDoesNotWork] ********************************************* ********* 致命的:[localhost] =>子元素查找需要两个项目的列表,首先是字典或列表,第二个是字符串
FATAL: all hosts have already failed -- aborting
PLAY RECAP ********************************************************************
需要帮助了解这是否是正确的方法以及为什么它不起作用。
对任何建议持开放态度。
感谢。
答案 0 :(得分:1)
错误描述至少模糊地说明了什么意思。 :)
Refer to the code在这里看到错误的含义。 terms
是您传递的列表。
if not isinstance(terms, list) or not 2 <= len(terms) <= 3:
简而言之:你只能走2级而不是3级。
The documentation确实说清楚了:
或者,您可以将第三个元素添加到子元素列表中 拿着旗帜字典。