Note
This plugin is part of the netbox.netbox collection (version 3.3.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 netbox.netbox
.
To use it in a playbook, specify: netbox.netbox.netbox_device_interface
.
New in version 0.1.0: of netbox.netbox
The below requirements are needed on the host that executes this module.
Parameter | Choices/Defaults | Comments | |
---|---|---|---|
cert raw | Certificate path | ||
data dictionary / required | Defines the interface configuration | ||
custom_fields dictionary | must exist in Netbox | ||
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 | ||
label string | Physical label of the interface | ||
lag raw | Parent LAG interface will be a member of | ||
mac_address string | The MAC address of the interface | ||
mark_connected boolean |
| Mark an interface as connected without a cable attached (netbox >= 2.11 required) | |
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 | ||
parent_interface raw added in 3.2.0 of netbox.netbox | The device's parent interface | ||
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=raw | 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. |
Note
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_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 - 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 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 |
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/netbox/netbox/netbox_device_interface_module.html