community.vmware.vmware_vm_info 模块 – 返回有关 VMware 虚拟机客户机的基本信息

注意

此模块是 community.vmware 集合 (版本 5.2.0) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.vmware

要在剧本中使用它,请指定: community.vmware.vmware_vm_info

概要

  • 返回有关 vSphere 或 ESXi 虚拟机客户机的基本信息。

参数

参数

注释

folder

字符串

指定要从中收集信息的虚拟机的文件夹位置。

示例

folder: /ha-datacenter/vm

folder: ha-datacenter/vm

folder: /datacenter1/vm

folder: datacenter1/vm

folder: /datacenter1/vm/folder1

folder: datacenter1/vm/folder1

folder: /folder1/datacenter1/vm

folder: folder1/datacenter1/vm

folder: /folder1/datacenter1/vm/folder2

hostname

字符串

vSphere vCenter 或 ESXi 服务器的主机名或 IP 地址。

如果任务中未指定该值,则将改用环境变量 VMWARE_HOST 的值。

password

别名:pass, pwd

字符串

vSphere vCenter 或 ESXi 服务器的密码。

如果任务中未指定该值,则将改用环境变量 VMWARE_PASSWORD 的值。

port

整数

vSphere vCenter 或 ESXi 服务器的端口号。

如果任务中未指定该值,则将改用环境变量 VMWARE_PORT 的值。

默认值: 443

proxy_host

字符串

将接收所有 HTTPS 请求并转发它们的代理的地址。

格式为主机名或 IP。

如果任务中未指定该值,则将改用环境变量 VMWARE_PROXY_HOST 的值。

proxy_port

整数

将接收所有 HTTPS 请求并转发它们的 HTTP 代理的端口。

如果任务中未指定该值,则将改用环境变量 VMWARE_PROXY_PORT 的值。

show_allocated

布尔值

如果设置为 True,则显示以字节为单位的已分配存储空间和以 MB 为单位的内存。

选项

  • false ← (默认)

  • true

show_attribute

布尔值

仅当设置为 true 时,才会在信息中显示与虚拟机客户机相关的属性。

选项

  • false ← (默认)

  • true

show_cluster

布尔值

在 community.vmware 3.5.0 中添加

如果设置为 true,则显示虚拟机的集群标签。

选项

  • false

  • true ← (默认)

show_datacenter

布尔值

在 community.vmware 3.5.0 中添加

如果设置为 true,则显示虚拟机的数数据中心标签。

选项

  • false

  • true ← (默认)

show_datastore

布尔值

在 community.vmware 3.5.0 中添加

如果设置为 true,则显示虚拟机的数数据存储标签。

选项

  • false

  • true ← (默认)

show_esxi_hostname

布尔值

在 community.vmware 3.5.0 中添加

如果设置为 true,则显示虚拟机的 ESXi 主机标签。

选项

  • false

  • true ← (默认)

show_folder

布尔值

在 community.vmware 3.7.0 中添加

显示文件夹

选项

  • false

  • true ← (默认)

show_mac_address

布尔值

在 community.vmware 3.5.0 中添加

如果设置为 true,则显示虚拟机的 MAC 地址标签。

选项

  • false

  • true ← (默认)

show_net

布尔值

在 community.vmware 3.5.0 中添加

如果设置为 true,则显示虚拟机的网络标签。

选项

  • false

  • true ← (默认)

show_resource_pool

布尔值

在 community.vmware 3.5.0 中添加

如果设置为 true,则显示虚拟机的资源池标签。

选项

  • false

  • true ← (默认)

show_tag

布尔值

如果设置为 true,则显示与虚拟机相关的标签。

选项

  • false ← (默认)

  • true

username

别名:admin, user

字符串

vSphere vCenter 或 ESXi 服务器的用户名。

如果任务中未指定值,则将使用环境变量VMWARE_USER的值。

validate_certs

布尔值

允许在SSL证书无效时连接。当证书不受信任时,将其设置为false

如果任务中未指定值,则将使用环境变量VMWARE_VALIDATE_CERTS的值。

选项

  • false

  • true ← (默认)

vm_name

字符串

要从中获取相关配置信息的虚拟机的名称。

vm_type

字符串

如果设置为vm,则仅收集虚拟机的相关信息。

如果设置为template,则仅收集虚拟机模板的相关信息。

如果设置为all,则收集所有虚拟机和虚拟机模板的相关信息。

选项

  • "all" ← (默认)

  • "vm"

  • "template"

注释

注意

  • 所有模块都需要API写入权限,因此在免费的ESXi许可证上不支持。

  • 所有变量和VMware对象名称都区分大小写。

示例

- name: Gather all registered virtual machines
  community.vmware.vmware_vm_info:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
  delegate_to: localhost
  register: vm_info

- debug:
    var: vm_info.virtual_machines

- name: Gather one specific VM
  community.vmware.vmware_vm_info:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    vm_name: 'vm_name_as_per_vcenter'
  delegate_to: localhost
  register: vm_info

- debug:
    var: vm_info.virtual_machines

- name: Gather only registered virtual machine templates
  community.vmware.vmware_vm_info:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    vm_type: template
  delegate_to: localhost
  register: template_info

- debug:
    var: template_info.virtual_machines

- name: Gather only registered virtual machines
  community.vmware.vmware_vm_info:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    vm_type: vm
  delegate_to: localhost
  register: vm_info

- debug:
    var: vm_info.virtual_machines

- name: Get UUID from given VM Name
  block:
    - name: Get virtual machine info
      community.vmware.vmware_vm_info:
        hostname: '{{ vcenter_hostname }}'
        username: '{{ vcenter_username }}'
        password: '{{ vcenter_password }}'
        folder: "/datacenter/vm/folder"
      delegate_to: localhost
      register: vm_info

    - debug:
        msg: "{{ item.uuid }}"
      with_items:
        - "{{ vm_info.virtual_machines | community.general.json_query(query) }}"
      vars:
        query: "[?guest_name=='DC0_H0_VM0']"

- name: Get Tags from given VM Name
  block:
    - name: Get virtual machine info
      community.vmware.vmware_vm_info:
        hostname: '{{ vcenter_hostname }}'
        username: '{{ vcenter_username }}'
        password: '{{ vcenter_password }}'
        folder: "/datacenter/vm/folder"
      delegate_to: localhost
      register: vm_info

    - debug:
        msg: "{{ item.tags }}"
      with_items:
        - "{{ vm_info.virtual_machines | community.general.json_query(query) }}"
      vars:
        query: "[?guest_name=='DC0_H0_VM0']"

- name: Gather all VMs from a specific folder
  community.vmware.vmware_vm_info:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    folder: "/Asia-Datacenter1/vm/prod"
  delegate_to: localhost
  register: vm_info

- name: Get datastore_url from given VM name
  block:
    - name: Get virtual machine info
      community.vmware.vmware_vm_info:
        hostname: '{{ vcenter_hostname }}'
        username: '{{ vcenter_username }}'
        password: '{{ vcenter_password }}'
      delegate_to: localhost
      register: vm_info

    - debug:
        msg: "{{ item.datastore_url }}"
      with_items:
        - "{{ vm_info.virtual_machines | community.general.json_query(query) }}"
      vars:
        query: "[?guest_name=='DC0_H0_VM0']"

返回值

常见的返回值已在此处记录,以下是此模块特有的字段

描述

virtual_machines

列表 / 元素=字符串

虚拟机及其信息的字典列表

返回:成功

示例: [{"allocated": {"cpu": 2, "memory": 16, "storage": 500000000}, "attributes": {"job": "backup-prepare"}, "cluster": null, "datacenter": "Datacenter-1", "datastore_url": [{"name": "t880-o2g", "url": "/vmfs/volumes/e074264a-e5c82a58"}], "esxi_hostname": "10.76.33.226", "folder": "/Datacenter-1/vm", "guest_fullname": "Ubuntu Linux (64-bit)", "guest_name": "ubuntu_t", "ip_address": "", "mac_address": ["00:50:56:87:a5:9a"], "moid": "vm-24", "power_state": "poweredOff", "tags": [{"category_id": "urn:vmomi:InventoryServiceCategory:b316cc45-f1a9-4277-811d-56c7e7975203:GLOBAL", "category_name": "cat_0001", "description": "", "id": "urn:vmomi:InventoryServiceTag:43737ec0-b832-4abf-abb1-fd2448ce3b26:GLOBAL", "name": "tag_0001"}], "uuid": "4207072c-edd8-3bd5-64dc-903fd3a0db04", "vm_network": {"00:50:56:87:a5:9a": {"ipv4": ["10.76.33.228/24"], "ipv6": []}}}]

作者

  • Joseph Callen (@jcpowermac)

  • Abhijeet Kasurde (@Akasurde)

  • Fedor Vompe (@sumkincpp)