community.vmware.vmware_dvswitch 模块 – 创建或删除分布式交换机

注意

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

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

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

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

概要

  • 此模块可用于创建和删除分布式交换机。

参数

参数

注释

contact

字典

配置分布式交换机管理员联系人和描述的字典。

description

字符串

描述或其他详细信息。

name

字符串

管理员名称。

datacenter_name

别名:datacenter

字符串

包含分布式交换机的 vCenter 数据中心的名称。

如果未提供 folder,则为必填项。

folder 参数互斥。

description

字符串

分布式交换机的描述。

discovery_operation

字符串

选择发现操作。

如果 state=present,则为必填项。

选项

  • "both"

  • "advertise"

  • "listen" ← (默认)

discovery_proto

别名:discovery_protocol

字符串

Cisco 和链路层发现之间的链路发现协议。

如果 state=present,则为必填项。

cdp:使用 Cisco Discovery Protocol (CDP)。

lldp:使用 Link Layer Discovery Protocol (LLDP)。

disabled:不使用发现协议。

选项

  • "cdp" ← (默认)

  • "lldp"

  • "disabled"

folder

字符串

目标文件夹,放置 dvswitch 的绝对路径。

此文件夹应包含数据中心。

如果未提供 datacenter,则为必填项。

datacenter 参数互斥。

示例

folder: /datacenter1/network

folder: datacenter1/network

folder: /datacenter1/network/folder1

folder: datacenter1/network/folder1

folder: /folder1/datacenter1/network

folder: folder1/datacenter1/network

folder: /folder1/datacenter1/network/folder2

health_check

字典

配置分布式交换机健康检查的字典。

默认值: {"teaming_failover": false, "teaming_failover_interval": 0, "vlan_mtu": false, "vlan_mtu_interval": 0}

teaming_failover

布尔值

团队和故障转移健康检查。

选项

  • false ← (默认)

  • true

teaming_failover_interval

整数

团队和故障转移健康检查间隔(分钟)。

如果启用了团队和故障转移健康检查,则 vSphere Client 中的默认值为 1。

默认值: 0

vlan_mtu

布尔值

VLAN 和 MTU 健康检查。

选项

  • false ← (默认)

  • true

vlan_mtu_interval

整数

VLAN 和 MTU 健康检查间隔(分钟)。

如果启用了 VLAN 和 MTU 健康检查,则 vSphere Client 中的默认值为 1。

默认值: 0

hostname

字符串

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

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

mtu

整数

交换机最大传输单元。

如果 state=present,则为必填项。

接受 1280 到 9000(包含)之间的值。

默认值: 1500

multicast_filtering_mode

字符串

组播过滤模式。

basic 模式:虚拟机的组播流量根据组播组的目标 MAC 地址转发。

snooping 模式:分布式交换机根据 RFC 4541 提供 IGMP 和 MLD 侦听。

选项

  • "basic" ← (默认)

  • "snooping"

net_flow

字典

配置分布式交换机 Net Flow 的字典。

默认值: {"active_flow_timeout": 60, "collector_port": 0, "idle_flow_timeout": 15, "internal_flows_only": false, "observation_domain_id": 0, "sampling_rate": 4096}

active_flow_timeout

整数

流启动后,等待发送信息的时间(秒)。

默认值: 60

collector_ip

字符串

NetFlow 收集器的 IP 地址(IPv4 或 IPv6)。

collector_port

整数

NetFlow 收集器的端口。

默认值: 0

idle_flow_timeout

整数

流启动后,等待发送信息的时间(秒)。

默认值: 15

internal_flows_only

布尔值

如果为 True,则仅收集同一主机上虚拟机之间网络活动的數據。

选项

  • false ← (默认)

  • true

observation_domain_id

整数

标识与交换机相关的資訊。

默认值: 0

sampling_rate

整数

交换机收集的数据比例。

采样率表示 NetFlow 在每个收集的数据包之后丢弃的数据包数量。

如果速率为 0,则 NetFlow 会采样每个数据包,即收集一个数据包而不丢弃任何数据包。

如果速率为 1,则 NetFlow 会采样一个数据包并丢弃下一个数据包,依此类推。

默认值: 4096

switch_ip

字符串

community.vmware 4.3.0 中新增

分配 IP 地址,以便在 NetFlow 收集器中将分布式交换机视为单个网络设备。

而不是对应于每个主机的多个设备。

在 IPv6 环境中,ESXi 主机将忽略交换机 IP 地址。

network_policy

字典

配置端口组不同默认安全值的字典。

如果设置了此选项,则 DVS 的端口组将继承这些选项。

forged_transmits

布尔值

指示是否允许伪造传输。

选项

  • false ← (默认)

  • true

mac_changes

布尔值

指示是否允许 MAC 地址更改。

选项

  • false ← (默认)

  • true

promiscuous

布尔值

指示是否允许混杂模式。

选项

  • false ← (默认)

  • true

密码

别名: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 的值。

state

字符串

如果设置为 present 并且分布式交换机不存在,则将创建分布式交换机。

如果设置为 absent 并且分布式交换机存在,则将删除分布式交换机。

选项

  • "present" ← (默认)

  • "absent"

交换机名称

别名:switch、dvswitch

字符串 / 必需

要创建或删除的分布式 vSwitch 的名称。

交换机版本

别名:version

字符串

要创建的分布式交换机的版本。

版本必须与要连接的 ESXi 主机的版本匹配。

如果未指定,则使用 vCenter Server 的版本。

如果 state=present,则为必填项。

字符串

用于命名上行链路的前缀。

仅当创建分布式交换机时有效。如果分布式交换机已存在,则不使用。

默认情况下,上行链路将创建为上行链路 1、上行链路 2 等。

默认值: "Uplink "

整数

添加到分布式交换机的每个 ESXi 主机的上行链路数量。

可以增加或减少上行链路数量,但只有在上行链路未被端口组使用时,减少上行链路数量才会成功。

如果 state=present,则为必填项。

用户名

别名:admin、user

字符串

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

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

validate_certs

布尔值

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

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

选项

  • false

  • true ← (默认)

备注

注意

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

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

示例

- name: Create dvSwitch
  community.vmware.vmware_dvswitch:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter: '{{ datacenter }}'
    switch: dvSwitch
    version: 6.0.0
    mtu: 9000
    uplink_quantity: 2
    discovery_protocol: lldp
    discovery_operation: both
    state: present
  delegate_to: localhost

- name: Create dvSwitch with all options
  community.vmware.vmware_dvswitch:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter: '{{ datacenter }}'
    switch: dvSwitch
    version: 6.5.0
    mtu: 9000
    uplink_quantity: 2
    uplink_prefix: 'Uplink_'
    discovery_protocol: cdp
    discovery_operation: both
    multicast_filtering_mode: snooping
    health_check:
      vlan_mtu: true
      vlan_mtu_interval: 1
      teaming_failover: true
      teaming_failover_interval: 1
    net_flow:
        collector_ip: 192.168.10.50
        collector_port: 50034
        observation_domain_id: 0
        switch_ip: 192.168.10.40
        active_flow_timeout: 60
        idle_flow_timeout: 15
        sampling_rate: 4096
        internal_flows_only: false
    state: present
  delegate_to: localhost

- name: Delete dvSwitch
  community.vmware.vmware_dvswitch:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    datacenter: '{{ datacenter }}'
    switch: dvSwitch
    state: absent
  delegate_to: localhost

返回值

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

描述

result

字符串

有关已执行操作的信息

返回:始终

示例: "{'changed': False, 'contact': None, 'contact_details': None, 'description': None, 'discovery_operation': 'both', 'discovery_protocol': 'cdp', 'dvswitch': 'test', 'health_check_teaming': False, 'health_check_teaming_interval': 0, 'health_check_vlan': False, 'health_check_vlan_interval': 0, 'mtu': 9000, 'multicast_filtering_mode': 'basic', 'net_flow_active_flow_timeout': 60, 'net_flow_collector_ip': '192.168.10.50', 'net_flow_collector_port': 50034, 'net_flow_idle_flow_timeout': 15, 'net_flow_internal_flows_only': False, 'net_flow_observation_domain_id': 0, 'net_flow_sampling_rate': 4096, 'net_flow_switch_ip': '192.168.10.40', 'result': 'DVS already configured properly', 'uplink_quantity': 2, 'uplinks': ['Uplink_1', 'Uplink_2'], 'version': '6.6.0'}"

作者

  • Joseph Callen (@jcpowermac)

  • Abhijeet Kasurde (@Akasurde)

  • Christian Kotte (@ckotte)