device_interface¶
Collection Note
This module is part of the networktocode.nautobot collection. To install the collection, use:
Added in version1.0.0
.
You need further requirements to be able to use this module, see the Requirements section for details.
Synopsis¶
- Creates or removes interfaces from Nautobot
Requirements¶
The following Python packages are needed on the host that executes this module:
Parameters¶
Parameter | Defaults / Choices | Comments |
---|---|---|
api_version str |
API Version Nautobot REST API Version Added: 4.1.0 |
|
bridge raw |
Interface that will be the bridge of the interface being created Version Added: 4.5.0 |
|
custom_fields dict |
Must exist in Nautobot and in key/value format Version Added: 3.0.0 |
|
description str |
The description of the interface Version Added: 3.0.0 |
|
device raw |
Name of the device the interface will be associated with (case-sensitive) Requires one of I(device) or I(module) when I(state=present) and the interface does not exist yet Version Added: 3.0.0 |
|
enabled bool |
Sets whether interface shows enabled or disabled Version Added: 3.0.0 |
|
id str |
The UUID of the object to operate on Version Added: 5.13.0 |
|
label str |
Physical label of the interface Version Added: 3.0.0 |
|
lag raw |
Parent LAG interface will be a member of Version Added: 3.0.0 |
|
mac_address str |
The MAC address of the interface Version Added: 3.0.0 |
|
mgmt_only bool |
This interface is used only for out-of-band management Version Added: 3.0.0 |
|
mode raw |
The mode of the interface Version Added: 3.0.0 |
|
module raw |
The attached module Requires one of I(device) or I(module) when I(state=present) and the interface does not exist yet Version Added: 5.4.0 |
|
mtu int |
The MTU of the interface Version Added: 3.0.0 |
|
name str |
Name of the interface to be created Required if I(state=present) and the interface does not exist yet Version Added: 3.0.0 |
|
parent_interface raw |
Interface that will be the parent of the interface being created Version Added: 4.5.0 |
|
query_params list / elements=str |
This can be used to override the specified values in ALLOWED_QUERY_PARAMS that is defined in plugins/module_utils/utils.py and provides control to users on what may make an object unique in their environment. Version Added: 3.0.0 |
|
role raw |
The role of the interface Version Added: 5.4.0 |
|
state str |
Default: present Choices: absent, present |
Use C(present) or C(absent) for adding or removing. |
status raw |
The status of the interface Required if I(state=present) and the interface does not exist yet Version Added: 4.5.0 |
|
tagged_vlans raw |
A list of tagged VLANS to be assigned to interface. Mode must be set to either C(Tagged) or C(Tagged All) Version Added: 3.0.0 |
|
tags list / elements=raw |
Any tags that this item may need to be associated with Version Added: 3.0.0 |
|
token str required |
The token created within Nautobot to authorize API access Can be omitted if the E(NAUTOBOT_TOKEN) environment variable is configured. |
|
type str |
Form factor of the interface:
ex. 1000Base-T (1GE), Virtual, 10GBASE-T (10GE)
This has to be specified exactly as what is found within UI
Required if I(state=present) and the interface does not exist yet Version Added: 3.0.0 |
|
untagged_vlan raw |
The untagged VLAN to be assigned to interface Version Added: 3.0.0 |
|
update_vc_child bool |
Use when master device is specified for C(device) and the specified interface exists on a child device
and needs updated
Version Added: 3.0.0 |
|
url str required |
The URL of the Nautobot instance resolvable by the Ansible host (for example: http://nautobot.example.com:8000) Can be omitted if the E(NAUTOBOT_URL) environment variable is configured. |
|
validate_certs raw |
Default: True |
If C(no), SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates. Can be omitted if the E(NAUTOBOT_VALIDATE_CERTS) environment variable is configured. |
vrf raw |
The VRF associated with the interface Version Added: 5.12.0 |
Notes¶
Note
- Tags should be defined as a YAML list
- This should be ran with connection C(local) and hosts C(localhost)
Examples¶
- name: "Test Nautobot interface module"
connection: local
hosts: localhost
gather_facts: false
tasks:
- name: Create interface within Nautobot with only required information
networktocode.nautobot.device_interface:
url: http://nautobot.local
token: thisIsMyToken
device: test100
name: GigabitEthernet1
state: present
- name: Delete interface within nautobot
networktocode.nautobot.device_interface:
url: http://nautobot.local
token: thisIsMyToken
device: test100
name: GigabitEthernet1
state: absent
- name: Create LAG with several specified options
networktocode.nautobot.device_interface:
url: http://nautobot.local
token: thisIsMyToken
device: test100
name: port-channel1
type: Link Aggregation Group (LAG)
mtu: 1600
mgmt_only: false
mode: Access
state: present
- name: Create interface and assign it to parent LAG
networktocode.nautobot.device_interface:
url: http://nautobot.local
token: thisIsMyToken
device: test100
name: GigabitEthernet1
enabled: false
type: 1000Base-t (1GE)
lag:
name: port-channel1
mtu: 1600
mgmt_only: false
mode: Access
state: present
- name: Create interface as a trunk port
networktocode.nautobot.device_interface:
url: http://nautobot.local
token: thisIsMyToken
device: test100
name: GigabitEthernet25
enabled: false
role: Loopnetwork
type: 1000Base-t (1GE)
untagged_vlan:
name: Wireless
location: "{{ location['key'] }}"
tagged_vlans:
- name: Data
location: "{{ location['key'] }}"
- name: VoIP
location: "{{ location['key'] }}"
mtu: 1600
mgmt_only: true
mode: Tagged
state: present
- name: Update interface on child device on virtual chassis
networktocode.nautobot.device_interface:
url: http://nautobot.local
token: thisIsMyToken
device: test100
name: GigabitEthernet2/0/1
enabled: false
update_vc_child: true
- name: |
Create an interface and update custom_field data point,
setting the value to True
networktocode.nautobot.device_interface:
url: http://nautobot.local
token: thisIsMyToken
device: test100
name: GigabitEthernet1/1/1
enabled: false
custom_fields:
monitored: true
- name: Create child interface
networktocode.nautobot.device_interface:
url: http://nautobot.local
token: thisIsMyToken
device: test100
name: GigabitEthernet1/1/1
type: Virtual
parent_interface:
name: GigabitEthernet1/1
- name: Create bridge interface
networktocode.nautobot.device_interface:
url: http://nautobot.local
token: thisIsMyToken
device: test100
name: Bridge1
bridge:
name: GigabitEthernet1/1
- name: Delete interface by id
networktocode.nautobot.device_interface:
url: http://nautobot.local
token: thisIsMyToken
id: 00000000-0000-0000-0000-000000000000
state: absent
Return Values¶
Key | Data Type | Description | Returned |
---|---|---|---|
interface | dict | Serialized object as created or already existent within Nautobot | on creation |
msg | str | Message indicating failure or info about what has been achieved | always |
Authors¶
- Mikhail Yohman (@fragmentedpacket)