list - 字典的ansible访问列表
问题描述
我正在尝试使用外部 var 文件为自定义模块创建一堆组和成员。我需要做的就是访问列表中的字典列表。我已经尝试了很多东西,但我现在可能最接近的是:vars.yml:
groups_and_members:
FIRST_GROUP:
"memberx":
octet: 1
action: add
"nostandardy":
octet: 3
action: add
"memberz":
octet: 5
action: add
OTHER_GROUP:
"member1":
octet: 7
action: delete
"unexpected":
octet: 1
action: add
任务.yml:
- name: "add members"
mymodule:
cmd: "{{ item.value.action }}"
parameters:
name: "{{ item.key }}"
octet: "{{ item.value.octet }}"
with_items: "{{ groups_and_members }}"
所以想法是从列表中获取 (groups_and_members).value(FIRST_GROUP 在第一次迭代中)。并在 cmd 中使用其成员属性。但是因为我不知道组的名字,也不知道成员的名字,所以我不知道如何访问它们。我不会事先知道小组或成员的名称。dicts 应该在一个列表中,以防万一有新的 dicts 时不必执行新任务。如何访问组、成员和成员属性?我尝试过 with_dict、with_subelements 等,但似乎无法弄清楚。
解决方案
我应该以不同的方式格式化字典列表。这是一个重复的问题:在此处回答: Ansible with_subelements
我的变量应该是这样的:
groups_members:
- groupname: FIRST_GROUP
members:
- name: memberx
octet: "1"
action: add
- name: nostandardy
octet: "3"
action: add
- name: memberz
octet: "2"
action: add
- name: unexpected
octet: "1"
action: add
- groupname: RHOST
members:
- member: other1
octet: "1"
action: add
然后可以作为 item.1.action 或 item.0.value 访问,并且任务与
with_subelements:
- "{{ groups_members }}"
- members
推荐阅读
- excel - 将未定义数量的工作表中的日期提取到将工作表名称与数据匹配的摘要工作表
- php - 条件 Woocommerce 结帐字段逻辑
- batch-file - 如何获取批处理文件以根据计算机名称选择文件
- python - 为什么我需要 gevent 中的事件循环?
- remote-debugging - 无法在 Clion IDE 中使用 j-link 进行远程调试
- machine-learning - 就统计学、数据科学或机器学习而言,空间和时间术语的定义是什么
- jquery - 添加新行时如何停止剑道网格刷新?
- ember.js - Ember:恢复卸载记录
- delphi - 如果返回值是记录,则缺少“函数的返回值可能未定义”
- javascript - 将 JavaScript 对象转换为多维数组的最简洁方法