netbox.netbox.netbox_device_interface – Creates or removes interfaces on devices from Netbox
Note
This plugin is part of the netbox.netbox collection (version 1.2.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 |
| 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 |
| 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 |
| Use present or absent for adding or removing. | |
| update_vc_child boolean |
| 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
localand hostslocalhost
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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/netbox/netbox/netbox_device_interface_module.html