Ansible Fact - 将 Ansible Fact 变量解析为字典
Ansible Fact - Parsing Ansible Fact Variable to Dictionary
我正在使用 Ansible
os_project_facts 用于收集 OpenStack 管理项目 ID 的模块。
这是 ansible_fact 日志:
ansible_facts:
openstack_projects:
- description: Bootstrap project for initializing the cloud.
domain_id: default
enabled: true
id: <PROJECT_ID>
is_domain: false
is_enabled: true
location:
cloud: envvars
project:
domain_id: default
domain_name: null
id: default
name: null
region_name: null
zone: null
name: admin
options: {}
parent_id: default
properties:
options: {}
tags: []
tags: []
显然,这不是字典,而且我无法得到 openstack_projects.id 因为它不是字典。如何检索 PROJECT_ID 并将其用于其他任务?
由于openstack_projects
facts包含带有字典的单个列表元素,我们可以使用数组索引方法获取id
,即openstack_projects[0]['id']
.
可以直接使用,也可以使用set_fact
:
- name: get the project id
set_fact:
project_id: "{{ openstack_projects[0]['id'] }}"
我正在使用 Ansible os_project_facts 用于收集 OpenStack 管理项目 ID 的模块。 这是 ansible_fact 日志:
ansible_facts:
openstack_projects:
- description: Bootstrap project for initializing the cloud.
domain_id: default
enabled: true
id: <PROJECT_ID>
is_domain: false
is_enabled: true
location:
cloud: envvars
project:
domain_id: default
domain_name: null
id: default
name: null
region_name: null
zone: null
name: admin
options: {}
parent_id: default
properties:
options: {}
tags: []
tags: []
显然,这不是字典,而且我无法得到 openstack_projects.id 因为它不是字典。如何检索 PROJECT_ID 并将其用于其他任务?
由于openstack_projects
facts包含带有字典的单个列表元素,我们可以使用数组索引方法获取id
,即openstack_projects[0]['id']
.
可以直接使用,也可以使用set_fact
:
- name: get the project id
set_fact:
project_id: "{{ openstack_projects[0]['id'] }}"