community.vmware.vmware_dvs_portgroup 模块 – 创建或删除分布式 vSwitch 端口组。

注意

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

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

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

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

概要

  • 创建或删除分布式 vSwitch 端口组。

参数

参数

注释

hostname

字符串

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

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

in_traffic_shaping

字典

配置端口组的入口流量整形设置的字典。

average_bandwidth

整数

建立允许通过端口的每秒位数,平均超过一段时间,即允许的平均负载。

如果 in_traffic_shaping.inherited=true,则忽略此项。

burst_size

整数

当端口正在发送/发送或接收突发流量时,允许通过端口的每秒最大位数。

如果 in_traffic_shaping.inherited=true,则忽略此项。

enabled

布尔值

指示是否激活入口流量整形。

如果 in_traffic_shaping.inherited=true,则忽略此项。

选择

  • false

  • true

inherited

布尔值 / 必需

是否从交换机继承设置。

选择

  • false

  • true

peak_bandwidth

整数

突发中允许的最大字节数。

如果 in_traffic_shaping.inherited=true,则忽略此项。

mac_learning

字典

配置端口组 MAC 学习的字典。

allow_unicast_flooding

布尔值

允许对入口流量泛洪未学习的 MAC 的标志。

选择

  • false

  • true

enabled

布尔值

指示是否允许源 MAC 地址学习的标志。

选择

  • false

  • true

limit

整数

可以学习的最大 MAC 地址数。

limit_policy

字符串

超出 MAC 限制后的默认交换策略。

选择

  • "allow"

  • "drop"

net_flow

字符串

指示是否通过将报告发送到 NetFlow 收集器来分析通过 vds 的虚拟机 IP 流量。

选择

  • "true"

  • "on"

  • "yes"

  • "false"

  • "off"

  • "no"

  • "inherited"

network_policy

字典

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

forged_transmits

布尔值

指示是否允许伪造的传输。 如果 network_policy.inherited=true,则忽略此项。

选择

  • false

  • true

inherited

布尔值 / 必需

是否从交换机继承设置。

选择

  • false

  • true

mac_changes

布尔值

指示是否允许 MAC 地址更改。 如果 network_policy.inherited=true,则忽略此项。

选择

  • false

  • true

promiscuous

布尔值

指示是否允许混杂模式。 如果 network_policy.inherited=true,则忽略此项。

选择

  • false

  • true

num_ports

整数

端口组应包含的端口数。

out_traffic_shaping

字典

配置端口组的出口流量整形设置的字典。

average_bandwidth

整数

建立允许通过端口的每秒位数,平均超过一段时间,即允许的平均负载。

如果 out_traffic_shaping.inherited=true,则忽略此项。

burst_size

整数

当端口正在发送/发送或接收突发流量时,允许通过端口的每秒最大位数。

如果 out_traffic_shaping.inherited=true,则忽略此项。

enabled

布尔值

指示是否激活出口流量整形。

如果 out_traffic_shaping.inherited=true,则忽略此项。

选择

  • false

  • true

inherited

布尔值 / 必需

是否从交换机继承设置。

选择

  • false

  • true

peak_bandwidth

整数

突发中允许的最大字节数。

如果 out_traffic_shaping.inherited=true,则忽略此项。

password

别名:pass, pwd

字符串

vSphere vCenter 或 ESXi 服务器的密码。

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

port

整数

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

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

默认值: 443

port_allocation

字符串

弹性端口组会根据需要自动增加或减少端口数。

仅当 port_binding=static 时有效。

如果未指定并且 port_binding=static,则将为 elastic

如果未指定并且 port_binding=ephemeral,则将为 fixed

选择

  • "elastic"

  • "fixed"

port_binding

字符串 / 必需

端口绑定的类型决定了端口组中的端口何时分配给虚拟机。

有关更多详细信息,请参阅 VMware 知识库 1022312 https://kb.vmware.com/s/article/1022312

选择

  • "static"

  • "ephemeral"

port_policy

字典

配置端口组的高级策略设置的字典。

默认值: {"block_override": true, "ipfix_override": false, "live_port_move": false, "mac_management_override": false, "network_rp_override": false, "port_config_reset_at_disconnect": true, "shaping_override": false, "traffic_filter_override": false, "uplink_teaming_override": false, "vendor_config_override": false, "vlan_override": false}

block_override

布尔值

指示是否可以为每个端口更改阻止策略。

选择

  • false

  • true ← (默认)

ipfix_override

布尔值

指示是否可以为每个端口更改 ipfix 策略。

选择

  • false ← (默认)

  • true

live_port_move

布尔值

指示是否可以将活动端口移入或移出端口组。

选择

  • false ← (默认)

  • true

mac_management_override

布尔值

指示是否可以为每个端口更改安全策略。

选择

  • false ← (默认)

  • true

network_rp_override

布尔值

指示是否可以为每个端口更改网络资源池。

选择

  • false ← (默认)

  • true

port_config_reset_at_disconnect

布尔值

指示端口的配置是否在断开连接后自动重置。

选择

  • false

  • true ← (默认)

shaping_override

布尔值

指示是否可以为每个端口更改整形策略。

选择

  • false ← (默认)

  • true

traffic_filter_override

布尔值

指示是否可以为每个端口更改流量过滤器。

选择

  • false ← (默认)

  • true

布尔值

指示是否可以为每个端口更改上行链路组队策略。

选择

  • false ← (默认)

  • true

vendor_config_override

布尔值

指示是否可以为每个端口更改供应商配置。

选择

  • false ← (默认)

  • true

vlan_override

布尔值

指示是否可以为每个端口更改 VLAN。

选择

  • false ← (默认)

  • true

portgroup_name

字符串 / 必需

要创建或删除的端口组的名称。

proxy_host

字符串

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

格式为主机名或 IP。

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

proxy_port

整数

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

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

state

字符串

确定端口组是否存在。

选择

  • "present" ← (默认)

  • "absent"

switch_name

字符串 / 必需

应在其上创建端口组的分布式 vSwitch 的名称。

teaming_policy

字典

配置端口组的不同组队值的字典。

默认值: {"load_balance_policy": "loadbalance_srcid", "notify_switches": true, "rolling_order": false}

list / elements=string

用于负载均衡的活动上行链路列表。

inbound_policy

布尔值

指示是否也将组队策略应用于入站帧。

选择

  • false

  • true

load_balance_policy

字符串

网络适配器组队策略。

选择

  • "loadbalance_ip"

  • "loadbalance_srcmac"

  • "loadbalance_srcid" ← (默认)

  • "loadbalance_loadbased"

  • "failover_explicit"

notify_switches

布尔值

指示链接失败时是否通知物理交换机。

选择

  • false

  • true ← (默认)

rolling_order

布尔值

指示恢复链接时是否使用滚动策略。

选择

  • false ← (默认)

  • true

list / elements=string

用于故障转移的备用上行链路列表。

username

别名:admin,user

字符串

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

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

validate_certs

布尔值

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

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

选择

  • false

  • true ← (默认)

vlan_id

字符串 / 必需

应使用端口组配置的 VLAN ID,对于无 VLAN 请使用 0。

如果 vlan_trunk=true,则可以是多个范围和数字的组合,例如:1-200、205、400-4094。

有效范围为 0 到 4094。允许重叠范围。

如果 vlan_private=true,则应在分布式 vSwitch 中预先配置相应的私有 VLAN。

vlan_private

布尔值

指示这是否用于私有 VLAN。

vlan_trunk 参数互斥。

选择

  • false ← (默认)

  • true

vlan_trunk

布尔值

指示这是否为 VLAN 中继。

vlan_private 参数互斥。

选择

  • false ← (默认)

  • true

备注

注意

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

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

示例

- name: Create vlan portgroup
  community.vmware.vmware_dvs_portgroup:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    portgroup_name: vlan-123-portrgoup
    switch_name: dvSwitch
    vlan_id: 123
    num_ports: 120
    port_binding: static
    state: present
  delegate_to: localhost

- name: Create vlan trunk portgroup
  community.vmware.vmware_dvs_portgroup:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    portgroup_name: vlan-trunk-portrgoup
    switch_name: dvSwitch
    vlan_id: 1-1000, 1005, 1100-1200
    vlan_trunk: true
    num_ports: 120
    port_binding: static
    state: present
  delegate_to: localhost

- name: Create private vlan portgroup
  vmware_dvs_portgroup:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    portgroup_name: private-vlan-portrgoup
    switch_name: dvSwitch
    vlan_id: 1001
    vlan_private: true
    num_ports: 120
    port_binding: static
    state: present
  delegate_to: localhost

- name: Create no-vlan portgroup
  community.vmware.vmware_dvs_portgroup:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    portgroup_name: no-vlan-portrgoup
    switch_name: dvSwitch
    vlan_id: 0
    num_ports: 120
    port_binding: static
    state: present
  delegate_to: localhost

- name: Create vlan portgroup with all security and port policies
  community.vmware.vmware_dvs_portgroup:
    hostname: '{{ vcenter_hostname }}'
    username: '{{ vcenter_username }}'
    password: '{{ vcenter_password }}'
    portgroup_name: vlan-123-portrgoup
    switch_name: dvSwitch
    vlan_id: 123
    num_ports: 120
    port_binding: static
    state: present
    network_policy:
      inherited: false
      promiscuous: true
      forged_transmits: true
      mac_changes: true
    port_policy:
      block_override: true
      ipfix_override: true
      live_port_move: true
      network_rp_override: true
      port_config_reset_at_disconnect: true
      mac_management_override: true
      shaping_override: true
      traffic_filter_override: true
      uplink_teaming_override: true
      vendor_config_override: true
      vlan_override: true
  delegate_to: localhost

作者

  • Joseph Callen (@jcpowermac)

  • Philippe Dellaert (@pdellaert)