community.network.nclu – Configure network interfaces using NCLU
Note
This plugin is part of the community.network collection (version 3.0.0).
You might already have this collection installed if you are using the ansible
package. It is not included in ansible-core
. To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.network
.
To use it in a playbook, specify: community.network.nclu
.
Synopsis
- Interface to the Network Command Line Utility, developed to make it easier to configure operating systems running ifupdown2 and Quagga, such as Cumulus Linux. Command documentation is available at https://docs.cumulusnetworks.com/cumulus-linux/System-Configuration/Network-Command-Line-Utility-NCLU/
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
abort boolean |
| Boolean. When true, perform a 'net abort' before the block. This cleans out any uncommitted changes in the buffer. Mutually exclusive with atomic. |
atomic boolean |
| When true, equivalent to both commit and abort being true. Mutually exclusive with commit and atomic. |
commands string | A list of strings containing the net commands to run. Mutually exclusive with template. | |
commit boolean |
| When true, performs a 'net commit' at the end of the block. Mutually exclusive with atomic. |
description string | Default: "Ansible-originated commit" | Commit description that will be recorded to the commit log if commit or atomic are true. |
template string | A single, multi-line string with jinja2 formatting. This string will be broken by lines, and each line will be run through net. Mutually exclusive with commands. |
Examples
- name: Add two interfaces without committing any changes community.network.nclu: commands: - add int swp1 - add int swp2 - name: Modify hostname to Cumulus-1 and commit the change community.network.nclu: commands: - add hostname Cumulus-1 commit: true - name: Add 48 interfaces and commit the change. community.network.nclu: template: | {% for iface in range(1,49) %} add int swp{{iface}} {% endfor %} commit: true description: "Ansible - add swps1-48" - name: Fetch Status Of Interface community.network.nclu: commands: - show interface swp1 register: output - name: Print Status Of Interface ansible.builtin.debug: var: output - name: Fetch Details From All Interfaces In JSON Format community.network.nclu: commands: - show interface json register: output - name: Print Interface Details ansible.builtin.debug: var: output["msg"] - name: Atomically add an interface community.network.nclu: commands: - add int swp1 atomic: true description: "Ansible - add swp1" - name: Remove IP address from interface swp1 community.network.nclu: commands: - del int swp1 ip address 1.1.1.1/24 - name: Configure BGP AS and add 2 EBGP neighbors using BGP Unnumbered community.network.nclu: commands: - add bgp autonomous-system 65000 - add bgp neighbor swp51 interface remote-as external - add bgp neighbor swp52 interface remote-as external commit: true - name: Configure BGP AS and Add 2 EBGP neighbors Using BGP Unnumbered via Template community.network.nclu: template: | {% for neighbor in range(51,53) %} add bgp neighbor swp{{neighbor}} interface remote-as external add bgp autonomous-system 65000 {% endfor %} atomic: true - name: Check BGP Status community.network.nclu: commands: - show bgp summary json register: output - name: Print BGP Status In JSON ansible.builtin.debug: var: output["msg"]
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
changed boolean | changed | whether the interface was changed Sample: True |
msg string | always | human-readable report of success or failure Sample: interface bond0 config updated |
Authors
- Cumulus Networks (@isharacomix)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/network/nclu_module.html