cl_bond - Configures a bond port on Cumulus Linux

New in version 2.1.

DEPRECATED

Removed in Ansible:
version: 2.5
Why: The nclu module is designed to be easier to use for individuals who are new to Cumulus Linux by exposing the NCLU interface in an automatable way.
Alternative: Use nclu instead.

Synopsis

  • Configures a bond interface on Cumulus Linux To configure a bridge port use the cl_bridge module. To configure any other type of interface use the cl_interface module. Follow the guidelines for bonding found in the Cumulus User Guide at http://docs.cumulusnetworks.com.

Requirements

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

  • Alternate Debian network interface manager - ifupdown2 @ github.com/CumulusNetworks/ifupdown2

Parameters

Parameter Choices/Defaults Comments
addr_method
    Choices:
  • dhcp
Configures the port to use DHCP. To enable this feature use the option dhcp.
alias_name
Description of the port.
clag_id
Specify a unique clag_id for every dual connected bond on each peer switch. The value must be between 1 and 65535 and must be the same on both peer switches in order for the bond to be considered dual-connected.
ipv4
List of IPv4 addresses to configure on the interface. In the form X.X.X.X/YY.
ipv6
List of IPv6 addresses to configure on the interface. In the form X:X:X::X/YYY.
lacp_bypass_all_active
Activate all interfaces for bypass. It is recommended to configure all_active instead of using bypass_priority.
lacp_bypass_allow
Enable LACP bypass.
lacp_bypass_period
Period for enabling LACP bypass. Max value is 900.
lacp_bypass_priority
List of ports and priorities. Example "swp1=10, swp2=20".
lacp_rate Default:
1
The lacp rate.
location Default:
[u'/etc/network/interfaces.d']
Interface directory location.
miimon Default:
100
The mii link monitoring interval.
min_links Default:
1
Minimum number of links.
mode Default:
802.3ad
The bond mode, as of Cumulus Linux 2.5 only LACP bond mode is supported.
mstpctl_bpduguard
    Choices:
  • yes
  • no
Enables BPDU Guard on a port in vlan-aware mode.
mstpctl_portadminedge
    Choices:
  • yes
  • no
Enables admin edge port.
mstpctl_portnetwork
    Choices:
  • yes
  • no
Enables bridge assurance in vlan-aware mode.
mtu
Set MTU. Configure Jumbo Frame by setting MTU to 9000.
name
required
Name of the interface.
pvid
In vlan-aware mode, defines vlan that is the untagged vlan.
slaves
required
Bond members.
vids
In vlan-aware mode, lists VLANs defined under the interface.
virtual_ip
Define IPv4 virtual IP used by the Cumulus Linux VRR feature.
virtual_mac
Define Ethernet mac associated with Cumulus Linux VRR feature.
xmit_hash_policy Default:
layer3+4
Transmit load balancing algorithm. As of Cumulus Linux 2.5 only layer3+4 policy is supported.

Notes

Note

  • As this module writes the interface directory location, ensure that /etc/network/interfaces has a ‘source /etc/network/interfaces.d/*’ or whatever path is mentioned in the location attribute.
  • For the config to be activated, i.e installed in the kernel, “service networking reload” needs be be executed. See EXAMPLES section.

Examples

# Options ['virtual_mac', 'virtual_ip'] are required together
# configure a bond interface with IP address
- cl_bond:
    name: bond0
    slaves:
      - swp4-5
    ipv4: 10.1.1.1/24

# configure bond as a dual-connected clag bond
- cl_bond:
    name: bond1
    slaves:
      - swp1s0
      - swp2s0
    clag_id: 1

# define cl_bond once in tasks file
# then write interface config in variables file
# with just the options you want.
- cl_bond:
    name: "{{ item.key }}"
    slaves: "{{ item.value.slaves }}"
    clag_id: "{{ item.value.clag_id|default(omit) }}"
    ipv4:  "{{ item.value.ipv4|default(omit) }}"
    ipv6: "{{ item.value.ipv6|default(omit) }}"
    alias_name: "{{ item.value.alias_name|default(omit) }}"
    addr_method: "{{ item.value.addr_method|default(omit) }}"
    mtu: "{{ item.value.mtu|default(omit) }}"
    vids: "{{ item.value.vids|default(omit) }}"
    virtual_ip: "{{ item.value.virtual_ip|default(omit) }}"
    virtual_mac: "{{ item.value.virtual_mac|default(omit) }}"
    mstpctl_portnetwork: "{{ item.value.mstpctl_portnetwork|default('no') }}"
    mstpctl_portadminedge: "{{ item.value.mstpctl_portadminedge|default('no') }}"
    mstpctl_bpduguard: "{{ item.value.mstpctl_bpduguard|default('no') }}"
  with_dict: "{{ cl_bonds }}"

# In vars file
# ============
---
cl_bonds:
  bond0:
    alias_name: uplink to isp
    slaves:
      - swp1
      - swp3
    ipv4: 10.1.1.1/24'
  bond2:
    vids:
      - 1
      - 50
    clag_id: 1

Return Values

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

Key Returned Description
changed
bool
changed
whether the interface was changed

Sample:
True
msg
string
always
human-readable report of success or failure

Sample:
interface bond0 config updated


Status

This module is flagged as deprecated and will be removed in version 2.5. For more information see DEPRECATED.

Author

  • Cumulus Networks (@CumulusNetworks)

Hint

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

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/cl_bond_module.html