Ansible Playbook 从 VMWare 获取事实
Ansible Playbook to get facts from VMWare
我正在尝试使用 ansible 从 vcenter 获取集群名称、数据存储集群、端口组和其他一些信息。我已经阅读了文档 here,但是我在 return 中获取的数据几乎太多了,需要进行过滤。这是 clustername 剧本的示例。它有效,但我只想获取集群的名称。我将其输出到 yaml 文件,以便稍后将其导入管道。这是代码。
- hosts: localhost
gather_facts: no
vars_files:
- vars.yml
tasks:
- name: Gather vmware host facts from vCenter
community.vmware.vmware_cluster_info:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
datacenter: DC1
schema: vsphere
properties:
- name
register: clusternames
- name: Write results to a local file
copy:
content: "{{ clusternames.clusters | to_yaml }}"
dest: "clusternames.yml"
结果如下:
DC1-QA-DMZ: {name: DC1-QA-DMZ}
DC1-QA-GEN: {name: DC1-QA-GEN}
DC1-QA-SQL: {name: DC1-QA-SQL}
有没有办法只return这个?
name: DC1-QA-DMZ
name: DC1-QA-GEN
name: DC1-QA-SQL
or
DC1-QA-DMZ
DC1-QA-GEN
DC1-QA-SQL
我玩过 set_fact
,但我似乎无法理解我所缺少的东西。我需要做某种过滤器,但我不熟悉 what/how。
您可以使用 keys
方法从 dictionary
class 到 return 具有集群的字典视图对象,然后您可以将其转换为列表list
过滤函数:
content: "{{ clusternames.clusters.keys() | list | to_yaml }}"
此 YAML 呈现为:
- DC1-QA-DMZ
- DC1-QA-GEN
- DC1-QA-SQL
如问题所愿。
我正在尝试使用 ansible 从 vcenter 获取集群名称、数据存储集群、端口组和其他一些信息。我已经阅读了文档 here,但是我在 return 中获取的数据几乎太多了,需要进行过滤。这是 clustername 剧本的示例。它有效,但我只想获取集群的名称。我将其输出到 yaml 文件,以便稍后将其导入管道。这是代码。
- hosts: localhost
gather_facts: no
vars_files:
- vars.yml
tasks:
- name: Gather vmware host facts from vCenter
community.vmware.vmware_cluster_info:
hostname: '{{ vcenter_hostname }}'
username: '{{ vcenter_username }}'
password: '{{ vcenter_password }}'
datacenter: DC1
schema: vsphere
properties:
- name
register: clusternames
- name: Write results to a local file
copy:
content: "{{ clusternames.clusters | to_yaml }}"
dest: "clusternames.yml"
结果如下:
DC1-QA-DMZ: {name: DC1-QA-DMZ}
DC1-QA-GEN: {name: DC1-QA-GEN}
DC1-QA-SQL: {name: DC1-QA-SQL}
有没有办法只return这个?
name: DC1-QA-DMZ
name: DC1-QA-GEN
name: DC1-QA-SQL
or
DC1-QA-DMZ
DC1-QA-GEN
DC1-QA-SQL
我玩过 set_fact
,但我似乎无法理解我所缺少的东西。我需要做某种过滤器,但我不熟悉 what/how。
您可以使用 keys
方法从 dictionary
class 到 return 具有集群的字典视图对象,然后您可以将其转换为列表list
过滤函数:
content: "{{ clusternames.clusters.keys() | list | to_yaml }}"
此 YAML 呈现为:
- DC1-QA-DMZ
- DC1-QA-GEN
- DC1-QA-SQL
如问题所愿。