community.vmware.vmware_guest_network 模块 – 管理给定 vCenter 基础设施中指定虚拟机的网络适配器

注意

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

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

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

要在 playbook 中使用它,请指定:community.vmware.vmware_guest_network

概要

  • 此模块用于添加、重新配置、删除给定虚拟机的网络适配器。

参数

参数

注释

allow_guest_os_mtu_change

布尔值

允许客户机操作系统更改 SR-IOV 网络适配器上的 MTU。

此选项仅与 SR-IOV 网络适配器兼容。

选择

  • false

  • true ← (默认)

cluster

字符串

虚拟机所属的集群的名称。

connected

布尔值

如果 NIC 应连接到网络。

选择

  • false

  • true ← (默认)

datacenter

字符串

虚拟机所属的数据中心。

默认值: "ha-datacenter"

device_type

字符串

虚拟网络设备的类型。

有效选项为 - e1000e1000epcnet32vmxnet2vmxnet3 (默认值)、sriovpvrdma

默认值: "vmxnet3"

directpath_io

布尔值

启用通用直通 (UPT)。

仅与 device_type=vmxnet3 兼容。

选择

  • false ← (默认)

  • true

esxi_hostname

字符串

虚拟机所属的 ESXi 主机的 hostname。

folder

字符串

给定虚拟机的文件夹位置,仅当存在多个同名虚拟机时才需要此项。

force

布尔值

即使现有适配器连接到同一网络,也强制创建适配器。

选择

  • false ← (默认)

  • true

gather_network_info

别名:gather_network_facts

布尔值

返回有关当前客户机网络适配器的信息。

选择

  • false ← (默认)

  • true

guest_control

布尔值

允许客户机控制可连接设备是否已连接。

选择

  • false

  • true ← (默认)

hostname

字符串

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

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

label

字符串

应更改的 NIC 的标签。应设置 mac_addresslabel 以获取要重新配置的相应设备。

更改网络适配器的名称。

mac_address

字符串

应更改的 NIC 的 MAC 地址,如果未提供 MAC 地址,则会创建一个新的 NIC。

state=absent 时是必需的。

moid

字符串

要管理的实例的托管对象 ID(如果已知),这是仅在单个 vCenter 实例中唯一的标识符。

如果未提供 uuidname,则此项是必需的。

name

字符串

虚拟机的名称

如果未提供 uuidmoid,则此项是必需的。

network_name

字符串

vSphere 中网络的名称。

password

别名:pass, pwd

字符串

vSphere vCenter 或 ESXi 服务器的密码。

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

physical_function_backing

字符串

如果设置,则指定用作 SR-IOV 网络适配器后备的物理功能的 PCI ID。

此选项仅与 SR-IOV 网络适配器兼容。

port

整数

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

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

默认值: 443

proxy_host

字符串

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

格式为主机名或 IP 地址。

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

proxy_port

整数

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

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

pvrdma_device_protocol

字符串

在 community.vmware 3.3.0 中添加

使用的 PVRDMA 设备协议。有效选项为 - rocev1, rocev2

此参数仅在硬件版本 >=14 且 <= 19 的虚拟机上使用。

start_connected

布尔值

如果 NIC 应该在启动时连接到网络。

选择

  • false

  • true ← (默认)

state

字符串

NIC 状态。

当为 present 时,如果先前不存在或未设置 MAC 地址或标签,则将添加一个 NIC。

当为 absent 时,必须设置 mac_address 参数。

选择

  • "present" ← (默认)

  • "absent"

switch

字符串

目标网络的(dv)交换机名称,这仅对 dvswitch 是必需的。

use_instance_uuid

布尔值

是否使用 VMware 实例 UUID 而不是 BIOS UUID。

选择

  • false ← (默认)

  • true

username

别名:admin, user

字符串

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

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

uuid

字符串

虚拟机 uuid

如果未提供 namemoid,则为必需项。

validate_certs

布尔值

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

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

选择

  • false

  • true ← (默认)

virtual_function_backing

字符串

如果设置,则指定用作 SR-IOV 网络适配器后备的物理功能的 PCI ID。

此选项仅与 SR-IOV 网络适配器兼容。

vlan_id

整数

与网络关联的 VLAN ID。

wake_onlan

布尔值

启用 LAN 唤醒。

选择

  • false ← (默认)

  • true

备注

注意

  • 为了向后兼容,在使用 gather_network_info 参数时返回 network_data

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

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

示例

- name: change network for 00:50:56:11:22:33 on vm01.domain.fake
  community.vmware.vmware_guest_network:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    name: vm01.domain.fake
    mac_address: 00:50:56:11:22:33
    network_name: admin-network
    state: present

- name: add a nic on network with vlan id 2001 for 422d000d-2000-ffff-0000-b00000000000
  community.vmware.vmware_guest_network:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    uuid: 422d000d-2000-ffff-0000-b00000000000
    vlan_id: 2001

- name: remove nic with mac 00:50:56:11:22:33 from vm01.domain.fake
  community.vmware.vmware_guest_network:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    mac_address: 00:50:56:11:22:33
    name: vm01.domain.fake
    state: absent

- name: add multiple nics to vm01.domain.fake
  community.vmware.vmware_guest_network:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    datacenter: "{{ datacenter_name }}"
    name: vm01.domain.fake
    state: present
    vlan_id: "{{ item.vlan_id | default(omit) }}"
    network_name: "{{ item.network_name | default(omit) }}"
    connected: "{{ item.connected | default(omit) }}"
  loop:
    - vlan_id: 2000
      connected: false
    - network_name: guest-net
      connected: true

返回值

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

描述

network_data

字典

为了向后兼容,关于虚拟机网络适配器的元数据

返回:当使用 gather_network_info 参数时

示例: {"network_data": {"0": {"allow_guest_ctl": true, "connected": true, "device_type": "vmxnet3", "label": "网络适配器 2", "mac_addr": "00:50:56:AA:AA:AA", "mac_address": "00:50:56:AA:AA:AA", "name": "admin-net", "network_name": "admin-net", "start_connected": true, "switch": "vSwitch0", "unit_number": 8, "vlan_id": 10, "wake_onlan": false}, "1": {"allow_guest_ctl": true, "connected": true, "device_type": "vmxnet3", "label": "网络适配器 1", "mac_addr": "00:50:56:BB:BB:BB", "mac_address": "00:50:56:BB:BB:BB", "name": "guest-net", "network_name": "guest-net", "start_connected": true, "switch": "vSwitch0", "unit_number": 7, "vlan_id": 10, "wake_onlan": true}}}

network_info

列表 / 元素=字符串

关于虚拟机网络适配器的元数据

返回:始终

示例: {"network_info": [{"allow_guest_ctl": true, "connected": true, "device_type": "vmxnet3", "label": "网络适配器 2", "mac_address": "00:50:56:AA:AA:AA", "network_name": "admin-net", "start_connected": true, "switch": "vSwitch0", "unit_number": 8, "vlan_id": 10, "wake_onlan": false}, {"allow_guest_ctl": true, "connected": true, "device_type": "vmxnet3", "label": "网络适配器 1", "mac_address": "00:50:56:BB:BB:BB", "network_name": "guest-net", "start_connected": true, "switch": "vSwitch0", "unit_number": 7, "vlan_id": 10, "wake_onlan": true}]}

作者

  • Diane Wang (@Tomorrow9)