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

字符串

VM 所属集群的名称。

connected

布尔值

NIC 是否应连接到网络。

选项

  • false

  • true ← (默认)

datacenter

字符串

VM 所属的数据中心。

默认值: "ha-datacenter"

device_type

字符串

虚拟网络设备的类型。

有效选项为 - e1000, e1000e, pcnet32, vmxnet2, vmxnet3 (默认), sriov, pvrdma

默认值: "vmxnet3"

directpath_io

布尔值

启用通用直通 (UPT)。

仅与 device_type=vmxnet3 兼容。

选项

  • false ← (默认)

  • true

esxi_hostname

字符串

VM 所属 ESXi 主机的名称。

folder

字符串

给定 VM 的文件夹位置,只有当存在多个同名 VM 时才需要此参数。

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

布尔值

启动时是否应将网卡连接到网络。

选项

  • false

  • true ← (默认)

state

字符串

网卡状态。

present 时,如果 MAC 地址或标签不存在或未设置,则会添加网卡。

absent 时,必须设置 mac_address 参数。

选项

  • "present" ← (默认)

  • "absent"

switch

字符串

目标网络的 (dv)switch 名称,这仅对于 dvswitches 而言是必需的。

use_instance_uuid

布尔值

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

选项

  • false ← (默认)

  • true

用户名

别名: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

布尔值

启用唤醒网络功能。

选项

  • 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)