您可以使用 jinja2 模板来解决,我不太确定您正在迭代的项目的结构如何,这应该可以:
- set_fact:
volume_mapping: |
{%- set mapping = [] -%}
{%- set volumes = range(0,22) -%}
{%- for volume in volumes -%}
{%- set volume_type = {0<=volume|int<8: "rw", 7<volume|int<15: "dp", 14<volume|int<=21: "values"} -%}
{{ mapping.append({"volume": volume, "type": volume_type[True]}) }}
{%- endfor -%}
{{ mapping }}
volume_mapping:
[
{
"type": "rw",
"volume": 0
},
{
"type": "rw",
"volume": 1
},
{
"type": "rw",
"volume": 2
},
{
"type": "rw",
"volume": 3
},
{
"type": "rw",
"volume": 4
},
{
"type": "rw",
"volume": 5
},
{
"type": "rw",
"volume": 6
},
{
"type": "rw",
"volume": 7
},
{
"type": "dp",
"volume": 8
},
{
"type": "dp",
"volume": 9
},
{
"type": "dp",
"volume": 10
},
{
"type": "dp",
"volume": 11
},
{
"type": "dp",
"volume": 12
},
{
"type": "dp",
"volume": 13
},
{
"type": "dp",
"volume": 14
},
{
"type": "values",
"volume": 15
},
{
"type": "values",
"volume": 16
},
{
"type": "values",
"volume": 17
},
{
"type": "values",
"volume": 18
},
{
"type": "values",
"volume": 19
},
{
"type": "values",
"volume": 20
},
{
"type": "values",
"volume": 21
}
]
您可以将任何值附加到mapping,然后将其与with_items 一起使用:
"{{ item['type'] }}"