netbox.netbox.netbox_device_interface – Creates or removes interfaces on devices from Netbox

From Get docs
Ansible/docs/2.11/collections/netbox/netbox/netbox device interface module


netbox.netbox.netbox_device_interface – Creates or removes interfaces on devices from Netbox

Note

This plugin is part of the netbox.netbox collection (version 2.0.0).

To install it use: ansible-galaxy collection install netbox.netbox.

To use it in a playbook, specify: netbox.netbox.netbox_device_interface.


New in version 0.1.0: of netbox.netbox


Synopsis

  • Creates or removes interfaces from Netbox

Requirements

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

  • pynetbox

Parameters

Parameter Choices/Defaults Comments

data

dictionary / required

Defines the interface configuration

description

string

The description of the interface

device

raw

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

enabled

boolean

  • no
  • yes

Sets whether interface shows enabled or disabled

form_factor

raw

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

lag

raw

Parent LAG interface will be a member of

mac_address

string

The MAC address of the interface

mgmt_only

boolean

  • no
  • yes

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

mode

raw

The mode of the interface

mtu

integer

The MTU of the interface

name

string / required

Name of the interface to be created

tagged_vlans

raw

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

tags

list / elements=string

Any tags that the interface may need to be associated with

type

string

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

The untagged VLAN to be assigned to interface

netbox_token

string / required

The token created within Netbox to authorize API access

netbox_url

string / required

URL of the Netbox instance resolvable by Ansible control host

query_params

list / elements=string

This can be used to override the specified values in ALLOWED_QUERY_PARAMS that is defined

in plugins/module_utils/netbox_utils.py and provides control to users on what may make

an object unique in their environment.

state

string

  • absent
  • present

Use present or absent for adding or removing.

update_vc_child

boolean

  • no

  • yes

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

validate_certs

raw

Default:

"yes"

If no, SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates.



Notes

Note

  • Tags should be defined as a YAML list
  • This should be ran with connection local and hosts localhost


Examples

- name: "Test Netbox interface module"
  connection: local
  hosts: localhost
  gather_facts: False
  tasks:
    - name: Create interface within Netbox with only required information
      netbox_device_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          device: test100
          name: GigabitEthernet1
        state: present
    - name: Delete interface within netbox
      netbox_device_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          device: test100
          name: GigabitEthernet1
        state: absent
    - name: Create LAG with several specified options
      netbox_device_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          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
      netbox_device_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          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
      netbox_device_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          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
      netbox_device_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          device: test100
          name: GigabitEthernet2/0/1
          enabled: false
        update_vc_child: True

Return Values

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

Key Returned Description

interface

dictionary

on creation

Serialized object as created or already existent within Netbox


msg

string

always

Message indicating failure or info about what has been achieved





Authors

  • Mikhail Yohman (@FragmentedPacket)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/netbox/netbox/netbox_device_interface_module.html