vmware_dvswitch_lacp – Manage LACP configuration on a Distributed Switch — Ansible Documentation

- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# vmware_dvswitch_lacp – Manage LACP configuration on a Distributed Switch

New in version 2.8.

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Return Values
- Status

## Synopsis

- This module can be used to configure Link Aggregation Control Protocol (LACP) support mode and Link Aggregation Groups (LAGs).

## Requirements

The below requirements are needed on the host that executes this module.

- python >= 2.6
- PyVmomi

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
hostname string |  | The hostname or IP address of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable `VMWARE_HOST` will be used instead. Environment variable support added in Ansible 2.6.
link_aggregation_groups list |  | Can only be used if `lacp_support` is set to `enhanced`. The following parameters are required: - `name` (string): Name of the LAG. - `uplink_number` (int): Number of uplinks. Can 1 to 30. - `mode` (string): The negotiating state of the uplinks/ports. - choices: [ active, passive ] - `load_balancing_mode` (string): Load balancing algorithm. - Valid attributes are: - srcTcpUdpPort: Source TCP/UDP port number. - srcDestIpTcpUdpPortVlan: Source and destination IP, source and destination TCP/UDP port number and VLAN. - srcIpVlan: Source IP and VLAN. - srcDestTcpUdpPort: Source and destination TCP/UDP port number. - srcMac: Source MAC address. - destIp: Destination IP. - destMac: Destination MAC address. - vlan: VLAN only. - srcDestIp: Source and Destination IP. - srcIpTcpUdpPortVlan: Source IP, TCP/UDP port number and VLAN. - srcDestIpTcpUdpPort: Source and destination IP and TCP/UDP port number. - srcDestMac: Source and destination MAC address. - destIpTcpUdpPort: Destination IP and TCP/UDP port number. - srcPortId: Source Virtual Port Id. - srcIp: Source IP. - srcIpTcpUdpPort: Source IP and TCP/UDP port number. - destIpTcpUdpPortVlan: Destination IP, TCP/UDP port number and VLAN. - destTcpUdpPort: Destination TCP/UDP port number. - destIpVlan: Destination IP and VLAN. - srcDestIpVlan: Source and destination IP and VLAN. - The default load balancing mode in the vSphere Client is srcDestIpTcpUdpPortVlan. Please see examples for more information.
password string |  | The password of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable `VMWARE_PASSWORD` will be used instead. Environment variable support added in Ansible 2.6. aliases: pass, pwd
port integer added in 2.5 | Default: 443 | The port number of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable `VMWARE_PORT` will be used instead. Environment variable support added in Ansible 2.6.
support_mode string | Choices: basic ← enhanced | The LACP support mode. `basic`: One Link Aggregation Control Protocol group in the switch (singleLag). `enhanced`: Multiple Link Aggregation Control Protocol groups in the switch (multipleLag).
switch - / required |  | The name of the Distributed Switch to manage. aliases: dvswitch
username string |  | The username of the vSphere vCenter or ESXi server. If the value is not specified in the task, the value of environment variable `VMWARE_USER` will be used instead. Environment variable support added in Ansible 2.6. aliases: admin, user
validate_certs boolean | Choices: no yes ← | Allows connection when SSL certificates are not valid. Set to `false` when certificates are not trusted. If the value is not specified in the task, the value of environment variable `VMWARE_VALIDATE_CERTS` will be used instead. Environment variable support added in Ansible 2.6. If set to `yes`, please make sure Python >= 2.7.9 is installed on the given machine.

## Notes

Note

- Tested on vSphere 6.7
- You need to run the task two times if you want to remove all LAGs and change the support mode to ‘basic’

## Examples

    - name: Enable enhanced mode on a Distributed Switch
      vmware_dvswitch_lacp:
        hostname: '{{ inventory_hostname }}'
        username: '{{ vcenter_username }}'
        password: '{{ vcenter_password }}'
        switch: dvSwitch
        support_mode: enhanced
        validate_certs: "{{ validate_vcenter_certs }}"
      delegate_to: localhost
      loop_control:
        label: "{{ item.name }}"
      with_items: "{{ vcenter_distributed_switches }}"

    - name: Enable enhanced mode and create two LAGs on a Distributed Switch
      vmware_dvswitch_lacp:
        hostname: '{{ inventory_hostname }}'
        username: '{{ vcenter_username }}'
        password: '{{ vcenter_password }}'
        switch: dvSwitch
        support_mode: enhanced
        link_aggregation_groups:
            - name: lag1
              uplink_number: 2
              mode: active
              load_balancing_mode: srcDestIpTcpUdpPortVlan
            - name: lag2
              uplink_number: 2
              mode: passive
              load_balancing_mode: srcDestIp
        validate_certs: "{{ validate_vcenter_certs }}"
      delegate_to: localhost
      loop_control:
        label: "{{ item.name }}"
      with_items: "{{ vcenter_distributed_switches }}"

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
result string | always | information about performed operation Sample: {'link_aggregation_groups_previous': [], 'support_mode': 'enhanced', 'dvswitch': 'dvSwitch', 'changed': True, 'link_aggregation_groups': [{'uplink_number': 2, 'mode': 'active', 'load_balancing_mode': 'srcDestIpTcpUdpPortVlan', 'name': 'lag1'}, {'uplink_number': 2, 'mode': 'active', 'load_balancing_mode': 'srcDestIp', 'name': 'lag2'}], 'result': 'lacp lags changed'}

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Christian Kotte (@ckotte)

Hint

If you notice any issues in this documentation you can edit this document to improve it.