我有字典类型的数据,我想迭代并保持顺序很重要:
with_dict_test:
one: 1
two: 2
three: 3
four: 4
five: 5
six: 6
现在当我编写一个打印键和值的任务时,它们以看似随机的顺序打印(6,3,1,4,5,2) .
---
- name: with_dict test
debug: msg="{{item.key}} --> {{item.value}}"
with_dict: with_dict_test
如何强制Ansible按给定顺序迭代?还是有什么比 with_dict
更适合的?在任务执行期间我真的需要密钥和值...
2 回答
我不完全确定,但也许这会对你有所帮助:
我假设您可以使用Jinja过滤器以某种方式对复杂值进行排序 . 你可以检查的另一件事是将
dict.values()|list
和with_sequence
结合起来,但你从那块石头中挤出的任何东西都不会尖叫"maintainable."我没有看到使用dicts的简单方法,因为他们根据哈希键的顺序确定顺序 .
您可以执行以下操作:
并在剧本中只需用
with_items
替换with_dict
:如果你发现这个解决方案(变量的声明)很难看,你可以这样做:
并在剧本中