首页 > 解决方案 > Ansible:如何遍历字典

问题描述

这是输出。

ok: [vm1.nodekite.com] => {
"containerdict": {
    "webproxy": "customer1",
    "egacustomer": "webproxy",
    "platform": "opshop-app"
}

}

如何使用循环将字典的第一个键传递给组。

  - add_host:
      name: "{{ inventory_hostname }}"
      groups: "{{ item.key }}"
    loop: "{{ containerdict }}"

我的代码向我抛出错误

`"msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'key'`

我需要如下输出:

    "add_host": {
    "groups": [
        "webproxy"
    ],
    "host_name": "vm1.nodekite.com",

任何帮助将不胜感激。

标签: loopsdictionaryansibleansible-2.x

解决方案


我可以这样解决

- add_host:
    name: "{{ inventory_hostname }}"
    groups: "{{ item.key }}"
  loop: "{{ containerdict|dict2items }}"

推荐阅读