我如何在 Ansible 中循环这个
How do I loop over this in Ansible
我在 defaults/main.yml
中有这个
aws_efs_mount:
- "10.22.x.1": "us-east-1c.fs-123jha23.efs.us-east-1.amazonaws.com:/"
- "10.22.x.2": "us-east-1c.fs-97c3hw43.efs.us-east-1.amazonaws.com:/"
- "10.22.x.3": "us-east-1c.fs-76etgc22.efs.us-east-1.amazonaws.com:/"
如何遍历它?所以我可以这样做
- name: Show key/value pair
debug: msg="Key is {{ ??? }} and value is {{ ??? }}"
with_???: "{{ aws_efs_mount }}"
如果我使用 with_items,并使用 item.key,我得到 "item has no attribute named key",如果我使用 with_dict,我得到 "with_dict expects a dict"
既然你指定的是一个字典数组而不是一个集合,为什么不让字典更详细呢?
aws_efs_mount:
- { ip: "10.22.x.1", mount: "us-east-1c.fs-123jha23.efs.us-east-1.amazonaws.com:/"}
- { ip: "10.22.x.2", mount: "us-east-1c.fs-97c3hw43.efs.us-east-1.amazonaws.com:/"}
- { ip: "10.22.x.3", mount: "us-east-1c.fs-76etgc22.efs.us-east-1.amazonaws.com:/" }
- name: Show key/value pair
debug: msg="Key is {{ item.ip }} and value is {{ item.mount }}"
with_items: "{{ aws_efs_mount }}"
我在 defaults/main.yml
中有这个aws_efs_mount:
- "10.22.x.1": "us-east-1c.fs-123jha23.efs.us-east-1.amazonaws.com:/"
- "10.22.x.2": "us-east-1c.fs-97c3hw43.efs.us-east-1.amazonaws.com:/"
- "10.22.x.3": "us-east-1c.fs-76etgc22.efs.us-east-1.amazonaws.com:/"
如何遍历它?所以我可以这样做
- name: Show key/value pair
debug: msg="Key is {{ ??? }} and value is {{ ??? }}"
with_???: "{{ aws_efs_mount }}"
如果我使用 with_items,并使用 item.key,我得到 "item has no attribute named key",如果我使用 with_dict,我得到 "with_dict expects a dict"
既然你指定的是一个字典数组而不是一个集合,为什么不让字典更详细呢?
aws_efs_mount:
- { ip: "10.22.x.1", mount: "us-east-1c.fs-123jha23.efs.us-east-1.amazonaws.com:/"}
- { ip: "10.22.x.2", mount: "us-east-1c.fs-97c3hw43.efs.us-east-1.amazonaws.com:/"}
- { ip: "10.22.x.3", mount: "us-east-1c.fs-76etgc22.efs.us-east-1.amazonaws.com:/" }
- name: Show key/value pair
debug: msg="Key is {{ item.ip }} and value is {{ item.mount }}"
with_items: "{{ aws_efs_mount }}"