如何解析Ansible os_project_facts返回结果提取OpenStack admin项目ID
Ansible提取os_project_facts返回结果中admin项目ID的方法
os_project_facts返回的openstack_projects是列表结构,每个列表元素对应一个OpenStack项目的字典信息,有两种常用提取方式:
方法1:按项目名称匹配提取(推荐)
通过Ansible内置过滤器按名称筛选,不受列表返回顺序影响,兼容性更高:
- name: 提取admin项目ID ansible.builtin.set_fact: admin_project_id: "{{ openstack_projects | selectattr('name', 'equalto', 'admin') | map(attribute='id') | first }}"
提取完成后,在后续任务中直接引用{{ admin_project_id }}即可使用对应值。
方法2:按列表索引直接提取
如果你确认返回的openstack_projects列表第一个元素就是admin项目,可以直接通过索引取值:
- name: 按索引提取admin项目ID ansible.builtin.set_fact: admin_project_id: "{{ openstack_projects[0].id }}"
内容的提问来源于stack exchange,提问作者Shaghayegh Tavakoli
相关产品推荐
相关产品推荐

