Skip to content

Latest commit

 

History

History
1532 lines (813 loc) · 34.6 KB

netbox_device_interface_module.rst

File metadata and controls

1532 lines (813 loc) · 34.6 KB
orphan:

netbox.netbox.netbox_device_interface module -- Creates or removes interfaces on devices from NetBox

Note

This module is part of the netbox.netbox collection (version 3.13.0).

To install it, use: ansible-galaxy collection install netbox.netbox. You need further requirements to be able to use this module, see :ref:`Requirements <ansible_collections.netbox.netbox.netbox_device_interface_module_requirements>` for details.

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

.. rst-class:: ansible-version-added

New in netbox.netbox 0.1.0

  • Creates or removes interfaces from NetBox

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

  • pynetbox
.. rst-class:: ansible-option-table

Parameter Comments
.. rst-class:: ansible-option-title

cert

.. rst-class:: ansible-option-type-line

any

Certificate path

.. rst-class:: ansible-option-title

data

.. rst-class:: ansible-option-type-line

dictionary / required

Defines the interface configuration

.. rst-class:: ansible-option-title

bridge

.. rst-class:: ansible-option-type-line

any

added in netbox.netbox 3.6.0

Bridge the interface will connected to

.. rst-class:: ansible-option-title

custom_fields

.. rst-class:: ansible-option-type-line

dictionary

must exist in NetBox

.. rst-class:: ansible-option-title

description

.. rst-class:: ansible-option-type-line

string

The description of the interface

.. rst-class:: ansible-option-title

device

.. rst-class:: ansible-option-type-line

any

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

.. rst-class:: ansible-option-title

duplex

.. rst-class:: ansible-option-type-line

string

added in netbox.netbox 3.7.0

.. rst-class:: ansible-option-title

enabled

.. rst-class:: ansible-option-type-line

boolean

Sets whether interface shows enabled or disabled

.. rst-class:: ansible-option-line

Choices:

.. rst-class:: ansible-option-title

form_factor

.. rst-class:: ansible-option-type-line

any

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
.. rst-class:: ansible-option-title

label

.. rst-class:: ansible-option-type-line

string

Physical label of the interface

.. rst-class:: ansible-option-title

lag

.. rst-class:: ansible-option-type-line

any

Parent LAG interface will be a member of

.. rst-class:: ansible-option-title

mac_address

.. rst-class:: ansible-option-type-line

string

The MAC address of the interface

.. rst-class:: ansible-option-title

mark_connected

.. rst-class:: ansible-option-type-line

boolean

Mark an interface as connected without a cable attached (netbox >= 2.11 required)

.. rst-class:: ansible-option-line

Choices:

.. rst-class:: ansible-option-title

mgmt_only

.. rst-class:: ansible-option-type-line

boolean

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

.. rst-class:: ansible-option-line

Choices:

.. rst-class:: ansible-option-title

mode

.. rst-class:: ansible-option-type-line

any

The mode of the interface

.. rst-class:: ansible-option-title

mtu

.. rst-class:: ansible-option-type-line

integer

The MTU of the interface

.. rst-class:: ansible-option-title

name

.. rst-class:: ansible-option-type-line

string / required

Name of the interface to be created

.. rst-class:: ansible-option-title

parent_interface

.. rst-class:: ansible-option-type-line

any

added in netbox.netbox 3.2.0

The device's parent interface

.. rst-class:: ansible-option-title

poe_mode

.. rst-class:: ansible-option-type-line

any

added in netbox.netbox 3.8.0

This interface has PoE ability (NetBox release 3.3 and later)

.. rst-class:: ansible-option-title

poe_type

.. rst-class:: ansible-option-type-line

any

added in netbox.netbox 3.8.0

This interface's power type (NetBox release 3.3 and later)

.. rst-class:: ansible-option-title

speed

.. rst-class:: ansible-option-type-line

integer

added in netbox.netbox 3.7.0

The speed of the interface

.. rst-class:: ansible-option-title

tagged_vlans

.. rst-class:: ansible-option-type-line

any

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

.. rst-class:: ansible-option-title

tags

.. rst-class:: ansible-option-type-line

list / elements=any

Any tags that the interface may need to be associated with

.. rst-class:: ansible-option-title

type

.. rst-class:: ansible-option-type-line

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
.. rst-class:: ansible-option-title

untagged_vlan

.. rst-class:: ansible-option-type-line

any

The untagged VLAN to be assigned to interface

.. rst-class:: ansible-option-title

vrf

.. rst-class:: ansible-option-type-line

any

added in netbox.netbox 3.7.0

The VRF of the interface

.. rst-class:: ansible-option-title

netbox_token

.. rst-class:: ansible-option-type-line

string / required

The NetBox API token.

.. rst-class:: ansible-option-title

netbox_url

.. rst-class:: ansible-option-type-line

string / required

The URL of the NetBox instance.

Must be accessible by the Ansible control host.

.. rst-class:: ansible-option-title

query_params

.. rst-class:: ansible-option-type-line

list / elements=string

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

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

an object unique in their environment.

.. rst-class:: ansible-option-title

state

.. rst-class:: ansible-option-type-line

string

The state of the object.

.. rst-class:: ansible-option-line

Choices:

.. rst-class:: ansible-option-title

update_vc_child

.. rst-class:: ansible-option-type-line

boolean

Use when master device is specified for device and the specified interface exists on a child device
and needs updated
.. rst-class:: ansible-option-line

Choices:

.. rst-class:: ansible-option-title

validate_certs

.. rst-class:: ansible-option-type-line

any

If no, SSL certificates will not be validated.

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

.. rst-class:: ansible-option-line

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

Note

  • Tags should be defined as a YAML list
  • This should be ran with connection local and hosts localhost
- name: "Test NetBox interface module"
  connection: local
  hosts: localhost
  gather_facts: False
  tasks:
    - name: Create interface within NetBox with only required information
      netbox.netbox.netbox_device_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          device: test100
          name: GigabitEthernet1
        state: present

    - name: Delete interface within netbox
      netbox.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.netbox.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.netbox.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.netbox.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.netbox.netbox_device_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          device: test100
          name: GigabitEthernet2/0/1
          enabled: false
        update_vc_child: True

    - name: Mark interface as connected without a cable (netbox >= 2.11 required)
      netbox.netbox.netbox_device_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          device: test100
          name: GigabitEthernet1
          mark_connected: true
        state: present

Common return values are documented :ref:`here <common_return_values>`, the following are the fields unique to this module:

.. rst-class:: ansible-option-table

Key Description
.. rst-class:: ansible-option-title

interface

.. rst-class:: ansible-option-type-line

dictionary

Serialized object as created or already existent within NetBox

.. rst-class:: ansible-option-line

Returned: on creation

.. rst-class:: ansible-option-title

msg

.. rst-class:: ansible-option-type-line

string

Message indicating failure or info about what has been achieved

.. rst-class:: ansible-option-line

Returned: always

Authors

  • Mikhail Yohman (@FragmentedPacket)

Collection links

Issue Tracker Repository (Sources)