通过键从 Ansible 字典中获取项目
Get items from Ansible dictionary by key
我有字典:
sshd_additional_user_cfg:
- name: root
authorized_keys:
- key2
- key3
- name: user1
authorized_keys:
- key1
我如何select 字典中名称为 root 的对象,以便我得到
- name: root
authorized_keys:
- key2
- key3
您可以创建一个包含所有与 name=='root'
匹配的元素的新变量
tasks:
- set_fact:
my_new_var: "{{ my_new_var | default([]) + [item] }}"
when: item.name == 'root'
with_items: "{{ sshd_additional_user_cfg }}"
- debug: var=my_new_var
问:"我怎样才能select那个名字为root的字典的对象?"
答:使用过滤器 selectattr。例如
- set_fact:
selected_users: "{{ sshd_additional_user_cfg|
selectattr('name', 'eq', 'root')|
list }}"
- debug:
var: selected_users
给予
selected_users:
- authorized_keys:
- key2
- key3
name: root
我有字典:
sshd_additional_user_cfg:
- name: root
authorized_keys:
- key2
- key3
- name: user1
authorized_keys:
- key1
我如何select 字典中名称为 root 的对象,以便我得到
- name: root
authorized_keys:
- key2
- key3
您可以创建一个包含所有与 name=='root'
tasks:
- set_fact:
my_new_var: "{{ my_new_var | default([]) + [item] }}"
when: item.name == 'root'
with_items: "{{ sshd_additional_user_cfg }}"
- debug: var=my_new_var
问:"我怎样才能select那个名字为root的字典的对象?"
答:使用过滤器 selectattr。例如
- set_fact:
selected_users: "{{ sshd_additional_user_cfg|
selectattr('name', 'eq', 'root')|
list }}"
- debug:
var: selected_users
给予
selected_users:
- authorized_keys:
- key2
- key3
name: root