networktocode.nautobot.device_interface module – Creates or removes interfaces on devices from Nautobot

Note

This module is part of the networktocode.nautobot collection (version 3.4.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 networktocode.nautobot.

To use it in a playbook, specify: networktocode.nautobot.device_interface.

New in version 1.0.0: of networktocode.nautobot

Synopsis

  • Creates or removes interfaces from Nautobot

Requirements

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

  • pynautobot

Parameters

Parameter

Comments

custom_fields

dictionary

added in 3.0.0 of networktocode.nautobot

Allows modification of any custom tags on the interface. The custom field must already exist in the model

description

string

added in 3.0.0 of networktocode.nautobot

The description of the interface

device

raw / required

added in 3.0.0 of networktocode.nautobot

Name of the device the interface will be associated with (case-sensitive)

enabled

boolean

added in 3.0.0 of networktocode.nautobot

Sets whether interface shows enabled or disabled

Choices:

  • no

  • yes

label

string

added in 3.0.0 of networktocode.nautobot

Physical label of the interface

lag

raw

added in 3.0.0 of networktocode.nautobot

Parent LAG interface will be a member of

mac_address

string

added in 3.0.0 of networktocode.nautobot

The MAC address of the interface

mgmt_only

boolean

added in 3.0.0 of networktocode.nautobot

This interface is used only for out-of-band management

Choices:

  • no

  • yes

mode

raw

added in 3.0.0 of networktocode.nautobot

The mode of the interface

mtu

integer

added in 3.0.0 of networktocode.nautobot

The MTU of the interface

name

string / required

added in 3.0.0 of networktocode.nautobot

Name of the interface to be created

query_params

list / elements=string

added in 3.0.0 of networktocode.nautobot

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.

state

string

Use present or absent for adding or removing.

Choices:

  • absent

  • present ← (default)

tagged_vlans

raw

added in 3.0.0 of networktocode.nautobot

A list of tagged VLANS to be assigned to interface. Mode must be set to either Tagged or Tagged All

tags

list / elements=raw

added in 3.0.0 of networktocode.nautobot

Any tags that the interface may need to be associated with

token

string / required

The token created within Nautobot to authorize API access

type

string

added in 3.0.0 of networktocode.nautobot

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

untagged_vlan

raw

added in 3.0.0 of networktocode.nautobot

The untagged VLAN to be assigned to interface

update_vc_child

boolean

added in 3.0.0 of networktocode.nautobot

Use when master device is specified for device and the specified interface exists on a child device

and needs updated

Choices:

  • no ← (default)

  • yes

url

string / required

URL of the Nautobot instance resolvable by Ansible control host

validate_certs

raw

If no, SSL certificates will not be validated.

This should only be used on personally controlled sites using self-signed certificates.

Default: “yes”

Notes

Note

  • Tags should be defined as a YAML list

  • This should be ran with connection local and hosts 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
        type: 1000Base-t (1GE)
        untagged_vlan:
          name: Wireless
          site: Test Site
        tagged_vlans:
          - name: Data
            site: Test Site
          - name: VoIP
            site: Test Site
        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

Return Values

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

Key

Description

interface

dictionary

Serialized object as created or already existent within Nautobot

Returned: on creation

msg

string

Message indicating failure or info about what has been achieved

Returned: always

Authors

  • Mikhail Yohman (@FragmentedPacket)