community.general.xenserver_guest_info 模块 – 收集在 Citrix Hypervisor/XenServer 主机或池上运行的虚拟机的相关信息

注意

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

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

要安装它,请使用: ansible-galaxy collection install community.general。您需要其他需求才能使用此模块,请参阅 需求 获取详细信息。

要在 playbook 中使用它,请指定: community.general.xenserver_guest_info

概要

  • 此模块可用于收集重要的虚拟机信息。

需求

执行此模块的主机需要以下需求。

  • XenAPI

参数

参数

注释

hostname

别名:host, pool

字符串

XenServer 主机或 XenServer 池主机的 hostname 或 IP 地址。

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

默认值: "localhost"

name

别名:name_label

字符串

要从中收集信息的虚拟机的名称。

在 XenServer 上运行的虚拟机不一定具有唯一的名称。如果找到多个具有相同名称的虚拟机,则模块将失败。

如果有多个虚拟机具有相同的名称,请使用 uuid 来唯一指定要管理的虚拟机。

此参数区分大小写。

password

别名:pass, pwd

字符串

用于连接到 XenServer 的密码。

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

username

别名:admin, user

字符串

用于连接到 XenServer 的用户名。

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

默认值: "root"

uuid

字符串

要收集信息的虚拟机的 UUID。这是 XenServer 的唯一标识符。

如果名称不唯一,则需要此参数。

validate_certs

布尔值

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

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

选项

  • false

  • true ← (默认值)

属性

属性

支持

描述

check_mode

支持:完全支持

此操作不会修改状态。

可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持: 不支持

此操作不会修改状态。

处于差异模式时,将返回有关已更改内容(或可能需要在 check_mode 中更改)的详细信息。

备注

注意

  • XenServer 的最低支持版本为 5.6。

  • 此模块已在 XenServer 6.5、7.1、7.2、7.6、Citrix Hypervisor 8.0、XCP-ng 7.6 和 8.0 上进行了测试。

  • 要获取 XenAPI Python 库,只需在 Ansible 控制节点上运行 pip install XenAPI。该库也可以在 Citrix Hypervisor/XenServer SDK 中找到(可从 Citrix 网站下载)。将 SDK 中的 XenAPI.py 文件复制到 Ansible 控制节点上的 Python site-packages 目录下即可使用。最新版本的库也可以从 GitHub 获取:https://raw.githubusercontent.com/xapi-project/xen-api/master/scripts/examples/python/XenAPI/XenAPI.py

  • 如果在 hostname 中未指定方案,模块默认使用 http://,因为在大多数设置中 https:// 会存在问题。请确保您在受信任的环境中访问 XenServer 主机,或者显式使用 https:// 方案。

  • 要为 hostname 使用 https:// 方案,您必须将主机证书导入到您的操作系统证书存储区,或者使用 validate_certs: no,这需要 XenServer 7.2 或更高版本的 SDK 和 Python 2.7.9 或更高版本。

示例

- name: Gather facts
  community.general.xenserver_guest_info:
    hostname: "{{ xenserver_hostname }}"
    username: "{{ xenserver_username }}"
    password: "{{ xenserver_password }}"
    name: testvm_11
  delegate_to: localhost
  register: facts

返回值

常见的返回值已在 此处 文档中说明,以下是此模块特有的字段

描述

实例

字典

关于虚拟机的元数据

返回值:始终返回

示例: {"cdrom": {"type": "none"}, "customization_agent": "native", "disks": [{"name": "testvm_11-0", "name_desc": "", "os_device": "xvda", "size": 42949672960, "sr": "Local storage", "sr_uuid": "0af1245e-bdb0-ba33-1446-57a962ec4075", "vbd_userdevice": "0"}, {"name": "testvm_11-1", "name_desc": "", "os_device": "xvdb", "size": 42949672960, "sr": "Local storage", "sr_uuid": "0af1245e-bdb0-ba33-1446-57a962ec4075", "vbd_userdevice": "1"}], "domid": "56", "folder": "", "hardware": {"memory_mb": 8192, "num_cpu_cores_per_socket": 2, "num_cpus": 4}, "home_server": "", "is_template": false, "name": "testvm_11", "name_desc": "", "networks": [{"gateway": "192.168.0.254", "gateway6": "fc00::fffe", "ip": "192.168.0.200", "ip6": ["fe80:0000:0000:0000:e9cb:625a:32c5:c291", "fc00:0000:0000:0000:0000:0000:0000:0001"], "mac": "ba:91:3a:48:20:76", "mtu": "1500", "name": "Pool-wide network associated with eth1", "netmask": "255.255.255.128", "prefix": "25", "prefix6": "64", "vif_device": "0"}], "other_config": {"base_template_name": "Windows Server 2016 (64-bit)", "import_task": "OpaqueRef:e43eb71c-45d6-5351-09ff-96e4fb7d0fa5", "install-methods": "cdrom", "instant": "true", "mac_seed": "f83e8d8a-cfdc-b105-b054-ef5cb416b77e"}, "platform": {"acpi": "1", "apic": "true", "cores-per-socket": "2", "device_id": "0002", "hpet": "true", "nx": "true", "pae": "true", "timeoffset": "-25200", "vga": "std", "videoram": "8", "viridian": "true", "viridian_reference_tsc": "true", "viridian_time_ref_count": "true"}, "state": "poweredon", "uuid": "e3c0b2d5-5f05-424e-479c-d3df8b3e7cda", "xenstore_data": {"vm-data": ""}}

作者

  • Bojan Vitnik (@bvitnik)