我有ansible dict,其中key是名称,value是整数值。我希望我的外部循环遍历dict然后内部循环迭代该值的次数。
- hosts: localhost
tasks:
- debug: msg="region {{ item.key }} value {{ item.value }}"
with_subelements:
- "{{ objs }}"
- "{{ item.value }}"
vars:
objs:
amrs: 3
apac: 1
emea: 2
所以输出应该是
region amrs value 1
region amrs value 2
region amrs value 3
region apac value 1
region emea value 1
region emea value 2
我想知道以上是否可以通过ansible实现。我也试过了with_nested
但是没有用
答案 0 :(得分:0)
您可以使用帮助程序任务生成序列:
---
- hosts: localhost
gather_facts: yes
vars:
objs:
amrs: 3
apac: 1
emea: 2
tasks:
- set_fact:
tmp_list: "{{ tmp_list | default([]) + [dict(name=item.key,seq=lookup('sequence','count='+item.value|string,wantlist=true))] }}"
with_dict: "{{ objs }}"
- debug: msg="region {{ item.0.name }} value {{ item.1 }}"
with_subelements:
- "{{ tmp_list }}"
- seq