ansible - 如何反向查找 ansible dict?

标签 ansible ansible-2.x

有没有办法将一个字典转换成另一个字典,以便根据内部字段反转查找?我希望每个项目的内部字段都是唯一的,并且始终存在。这是我想要做的事情的一个例子。

我有这样的数据结构:

lookup_dict:
  a1:
    b: 123
  a2:
    b: 456
  a3:
    b: 789

ab 之间的映射是一对一的。我想将其转换为:

reverse_lookup_dict:
  123: a1
  456: a2
  789: a3

然后我可以使用 b 对 a 执行反向查找。

最佳答案

经过一番研究,我发现答案如下:

name: Reverse Lookup
set_fact:
  reverse_lookup_dict: "{{reverse_lookup_dict|default({})|combine({item.value.b: item.key})}}"
loop: "{{lookup('dict', lookup_dict)}}"

关于ansible - 如何反向查找 ansible dict?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50494636/

相关文章:

ansible - 映射嵌套结构的属性

amazon-web-services - 如何在 docker 容器上运行 ansible-playbook 以在 AWS EC2 Ubuntu 实例上执行命令?

linux - 仅当变量包含特定字符串时才运行 Ansible 任务

Ansible - playbook 调用另一个带有变量、标签和限制的 playbook

ansible - 如何使用相对路径包含_tasks?

azure - 如何根据 set_facts 将多个 ansible 条件合并为一个

ansible - 使用 lineinfile 和 blockinfile 编辑文件还是使用模板复制整个文件?

linux - 将 rsa token 复制到组内的远程主机

ansible - 追加到 Ansible 列表中的字典

ansible - 在ansible中列出切片的字符串