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

Note

This module is part of the networktocode.nautobot collection (version 5.2.1).

To install it, use: ansible-galaxy collection install networktocode.nautobot. You need further requirements to be able to use this module, see Requirements for details.

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

New in networktocode.nautobot 1.0.0

Synopsis

  • Creates or removes interfaces from Nautobot

Requirements

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

  • pynautobot

Parameters

Parameter

Comments

api_version

string

added in networktocode.nautobot 4.1.0

API Version Nautobot REST API

bridge

any

added in networktocode.nautobot 4.5.0

Interface that will be the bridge of the interface being created

custom_fields

dictionary

added in networktocode.nautobot 3.0.0

Must exist in Nautobot and in key/value format

description

string

added in networktocode.nautobot 3.0.0

The description of the interface

device

any / required

added in networktocode.nautobot 3.0.0

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

enabled

boolean

added in networktocode.nautobot 3.0.0

Sets whether interface shows enabled or disabled

Choices:

label

string

added in networktocode.nautobot 3.0.0

Physical label of the interface

lag

any

added in networktocode.nautobot 3.0.0

Parent LAG interface will be a member of

mac_address

string

added in networktocode.nautobot 3.0.0

The MAC address of the interface

mgmt_only

boolean

added in networktocode.nautobot 3.0.0

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

Choices:

mode

any

added in networktocode.nautobot 3.0.0

The mode of the interface

mtu

integer

added in networktocode.nautobot 3.0.0

The MTU of the interface

name

string / required

added in networktocode.nautobot 3.0.0

Name of the interface to be created

parent_interface

any

added in networktocode.nautobot 4.5.0

Interface that will be the parent of the interface being created

query_params

list / elements=string

added in networktocode.nautobot 3.0.0

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:

status

any

added in networktocode.nautobot 4.5.0

The status of the interface

Required if state=present and the interface does not exist yet

tagged_vlans

any

added in networktocode.nautobot 3.0.0

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

tags

list / elements=any

added in networktocode.nautobot 3.0.0

Any tags that this item may need to be associated with

token

string / required

The token created within Nautobot to authorize API access

Can be omitted if the NAUTOBOT_TOKEN environment variable is configured.

type

string

added in networktocode.nautobot 3.0.0

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

any

added in networktocode.nautobot 3.0.0

The untagged VLAN to be assigned to interface

update_vc_child

boolean

added in networktocode.nautobot 3.0.0

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

and needs updated

Choices:

url

string / required

The URL of the Nautobot instance resolvable by the Ansible host (for example: http://nautobot.example.com:8000)

Can be omitted if the NAUTOBOT_URL environment variable is configured.

validate_certs

any

If 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 NAUTOBOT_VALIDATE_CERTS environment variable is configured.

Default: :ansible-option-default:`true`

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
          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

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)