nclu – Configure network interfaces using NCLU¶
New in version 2.3.
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/display/DOCS/Network+Command+Line+Utility
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
-
|
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
-
|
Default: "Ansible-originated commit"
|
Commit description that will be recorded to the commit log if commit or atomic are true.
|
template
-
|
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
nclu:
commands:
- add int swp1
- add int swp2
- name: Modify hostname to Cumulus-1 and commit the change
nclu:
commands:
- add hostname Cumulus-1
commit: true
- name: Add 48 interfaces and commit the change.
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
nclu:
commands:
- show interface swp1
register: output
- name: Print Status Of Interface
debug:
var: output
- name: Fetch Details From All Interfaces In JSON Format
nclu:
commands:
- show interface json
register: output
- name: Print Interface Details
debug:
var: output["msg"]
- name: Atomically add an interface
nclu:
commands:
- add int swp1
atomic: true
description: "Ansible - add swp1"
- name: Remove IP address from interface swp1
nclu:
commands:
- del int swp1 ip address 1.1.1.1/24
- name: Configure BGP AS and add 2 EBGP neighbors using BGP Unnumbered
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
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
nclu:
commands:
- show bgp summary json
register: output
- name: Print BGP Status In JSON
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
|
Status¶
This module is not guaranteed to have a backwards compatible interface. [preview]
This module is maintained by the Ansible Community. [community]