ansible.builtin.netbox_interface (v2.9.27) — module

Creates or removes interfaces from Netbox

| "added in version" 2.8 of ansible.builtin"

Authors: Mikhail Yohman (@FragmentedPacket)

preview | supported by community

Install Ansible via pip

Install with pip install ansible==2.9.27

Description

Creates or removes interfaces from Netbox


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: "Test Netbox interface module"
  connection: local
  hosts: localhost
  gather_facts: False
  tasks:
    - name: Create interface within Netbox with only required information
      netbox_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          device: test100
          name: GigabitEthernet1
        state: present
    - name: Delete interface within netbox
      netbox_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          device: test100
          name: GigabitEthernet1
        state: absent
    - name: Create LAG with several specified options
      netbox_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          device: test100
          name: port-channel1
          form_factor: Link Aggregation Group (LAG)
          mtu: 1600
          mgmt_only: false
          mode: Access
        state: present
    - name: Create interface and assign it to parent LAG
      netbox_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          device: test100
          name: GigabitEthernet1
          enabled: false
          form_factor: 1000Base-t (1GE)
          lag:
            name: port-channel1
          mtu: 1600
          mgmt_only: false
          mode: Access
        state: present
    - name: Create interface as a trunk port
      netbox_interface:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          device: test100
          name: GigabitEthernet25
          enabled: false
          form_factor: 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

Inputs

    
data:
    description:
    - Defines the prefix configuration
    required: true
    suboptions:
      description:
        description:
        - The description of the prefix
        type: str
      device:
        description:
        - Name of the device the interface will be associated with (case-sensitive)
        required: true
        type: str
      enabled:
        description:
        - Sets whether interface shows enabled or disabled
        type: bool
      form_factor:
        description:
        - '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

          '
        type: str
      lag:
        description:
        - Parent LAG interface will be a member of
        type: dict
      mac_address:
        description:
        - The MAC address of the interface
        type: str
      mgmt_only:
        description:
        - This interface is used only for out-of-band management
        type: bool
      mode:
        choices:
        - Access
        - Tagged
        - Tagged All
        description:
        - The mode of the interface
        type: str
      mtu:
        description:
        - The MTU of the interface
        type: str
      name:
        description:
        - Name of the interface to be created
        required: true
        type: str
      tagged_vlans:
        description:
        - A list of tagged VLANS to be assigned to interface. Mode must be set to either
          C(Tagged) or C(Tagged All)
        type: list
      tags:
        description:
        - Any tags that the prefix may need to be associated with
        type: list
      untagged_vlan:
        description:
        - The untagged VLAN to be assigned to interface
        type: dict

state:
    choices:
    - absent
    - present
    default: present
    description:
    - Use C(present) or C(absent) for adding or removing.
    type: str

netbox_url:
    description:
    - URL of the Netbox instance resolvable by Ansible control host
    required: true
    type: str

netbox_token:
    description:
    - The token created within Netbox to authorize API access
    required: true
    type: str

validate_certs:
    default: 'yes'
    description:
    - 'If C(no), SSL certificates will not be validated.

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

      '
    type: bool

Outputs

interface:
  description: Serialized object as created or already existent within Netbox
  returned: on creation
  type: dict
msg:
  description: Message indicating failure or info about what has been achieved
  returned: always
  type: str