【问题标题】:Ansible Fact - Parsing Ansible Fact Variable to DictionaryAnsible Fact - 将 Ansible Fact 变量解析为字典
【发布时间】:2021-11-10 11:06:39
【问题描述】:

我正在使用 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 似乎是一个字典数组(由- 表示)。它总是只有 1 个元素吗?
  • 是的,我按名称过滤项目,所以它总是只有一个元素。

标签: ansible openstack ansible-facts


【解决方案1】:

由于openstack_projects 事实包含单个列表元素和字典,我们可以使用数组索引方法获取id,即openstack_projects[0]['id']

你可以直接使用,也可以使用set_fact

- name: get the project id
  set_fact:
    project_id: "{{ openstack_projects[0]['id'] }}"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-23
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多