community.vmware.vmware_portgroup 模块 – 创建 VMware 端口组

注意

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

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

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

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

概要

  • 在给定 ESXi 主机或给定集群的主机上,在 VMware 标准交换机 (vSS) 上创建一个 VMware 端口组。

参数

参数

注释

cluster_name

别名:cluster

字符串

主机成员所属集群的名称。

端口组将在此集群的所有主机上创建。

如果未指定 hosts,则此选项是必需的。

主机名

字符串

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

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

hosts

别名:esxi_hostname

列表 / 元素=字符串

需要在其上添加端口组的主机名列表。

如果未指定 cluster_name,则此选项是必需的。

password

别名:pass, pwd

字符串

vSphere vCenter 或 ESXi 服务器的密码。

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

端口

整数

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

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

默认值: 443

portgroup

别名:portgroup_name

字符串 / 必需

要添加的端口组名称。

代理主机

字符串

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

格式为主机名或 IP。

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

代理端口

整数

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

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

security

别名:security_policy, network_policy

字典

网络策略指定端口组的第 2 层安全设置,例如混杂模式(其中客户机适配器侦听所有数据包)、MAC 地址更改和伪造传输。

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

forged_transmits

布尔值

指示是否允许伪造传输。

选项

  • false

  • true

mac_changes

布尔值

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

选项

  • false

  • true

promiscuous_mode

布尔值

指示是否允许混杂模式。

选项

  • false

  • true

state

字符串

确定端口组是否存在。

选项

  • "present" ← (默认)

  • "absent"

switch

别名:switch_name, vswitch

字符串 / 必需

要修改的 vSwitch。

teaming

别名:teaming_policy

字典

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

active_adapters

列表 / 元素=字符串

用于负载均衡的活动适配器列表。

如果未定义 teaming.active_adaptersteaming.standby_adapters,则所有 vmnics 都将用作活动适配器。

failback

布尔值

指示在恢复链路时是否使用回退。

选项

  • false

  • true

load_balancing

别名:load_balance_policy

字符串

网络适配器组队策略。

选项

  • "loadbalance_ip"

  • "loadbalance_srcmac"

  • "loadbalance_srcid"

  • "failover_explicit"

network_failure_detection

字符串

网络故障检测。

选项

  • "link_status_only"

  • "beacon_probing"

notify_switches

布尔值

指示链路故障时是否通知物理交换机。

选项

  • false

  • true

standby_adapters

列表 / 元素=字符串

用于故障转移的备用适配器列表。

如果未定义 teaming.active_adaptersteaming.standby_adapters,则所有 vmnics 都将用作活动适配器。

traffic_shaping

字典

配置交换机流量整形值的字典。

average_bandwidth

整数

平均带宽 (kbit/s)。

burst_size

整数

突发大小 (KB)。

enabled

布尔值

流量整形策略的状态。

选项

  • false

  • true

peak_bandwidth

整数

峰值带宽 (kbit/s)。

username

别名:admin, user

字符串

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

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

validate_certs

布尔值

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

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

选项

  • false

  • true ← (默认)

vlan_id

别名:vlan

整数

要分配给端口组的 VLAN ID。

默认设置为 0(无 VLAN 标记)。

默认值: 0

备注

注意

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

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

示例

- name: Add Management Network VM Portgroup
  community.vmware.vmware_portgroup:
    hostname: "{{ esxi_hostname }}"
    username: "{{ esxi_username }}"
    password: "{{ esxi_password }}"
    switch: "{{ vswitch_name }}"
    portgroup: "{{ portgroup_name }}"
    vlan_id: "{{ vlan_id }}"
  delegate_to: localhost

- name: Add Portgroup with Promiscuous Mode Enabled
  community.vmware.vmware_portgroup:
    hostname: "{{ esxi_hostname }}"
    username: "{{ esxi_username }}"
    password: "{{ esxi_password }}"
    switch: "{{ vswitch_name }}"
    portgroup: "{{ portgroup_name }}"
    security:
        promiscuous_mode: true
  delegate_to: localhost

- name: Add Management Network VM Portgroup to specific hosts
  community.vmware.vmware_portgroup:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    hosts: [esxi_hostname_one]
    switch: "{{ vswitch_name }}"
    portgroup: "{{ portgroup_name }}"
    vlan_id: "{{ vlan_id }}"
  delegate_to: localhost

- name: Add Management Network VM Portgroup to all hosts in a cluster
  community.vmware.vmware_portgroup:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    cluster_name: "{{ cluster_name }}"
    switch: "{{ vswitch_name }}"
    portgroup: "{{ portgroup_name }}"
    vlan_id: "{{ vlan_id }}"
  delegate_to: localhost

- name: Remove Management Network VM Portgroup to all hosts in a cluster
  community.vmware.vmware_portgroup:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    cluster_name: "{{ cluster_name }}"
    switch: "{{ vswitch_name }}"
    portgroup: "{{ portgroup_name }}"
    vlan_id: "{{ vlan_id }}"
    state: absent
  delegate_to: localhost

- name: Add Portgroup with all settings defined
  community.vmware.vmware_portgroup:
    hostname: "{{ vcenter_hostname }}"
    username: "{{ vcenter_username }}"
    password: "{{ vcenter_password }}"
    esxi_hostname: "{{ inventory_hostname }}"
    switch: "{{ vswitch_name }}"
    portgroup: "{{ portgroup_name }}"
    vlan_id: 10
    security:
        promiscuous_mode: false
        mac_changes: false
        forged_transmits: false
    traffic_shaping:
        enabled: true
        average_bandwidth: 100000
        peak_bandwidth: 100000
        burst_size: 102400
    teaming:
        load_balancing: failover_explicit
        network_failure_detection: link_status_only
        notify_switches: true
        failback: true
        active_adapters:
            - vmnic0
        standby_adapters:
            - vmnic1
  delegate_to: localhost
  register: teaming_result

返回值

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

描述

result

字典

关于端口组的元数据

返回:始终

示例: {"esxi01.example.com": {"changed": true, "failback": "No override", "failover_active": "No override", "failover_standby": "No override", "failure_detection": "No override", "load_balancing": "No override", "msg": "Port Group added", "notify_switches": "No override", "portgroup": "vMotion", "sec_forged_transmits": false, "sec_mac_changes": false, "sec_promiscuous_mode": false, "traffic_shaping": "No override", "vlan_id": 33, "vswitch": "vSwitch1"}}

作者

  • Joseph Callen (@jcpowermac)

  • Russell Teague (@mtnbikenc)

  • Abhijeet Kasurde (@Akasurde)

  • Christian Kotte (@ckotte)