Skip to content

vm_interface

Collection Note

This module is part of the networktocode.nautobot collection. To install the collection, use:

ansible-galaxy collection install networktocode.nautobot
You need further requirements to be able to use this module, see the Requirements section for details.

Synopsis

  • Creates or removes interfaces from virtual machines in Nautobot

Requirements

The following Python packages are needed on the host that executes this module:

Parameters

Parameter Data Type Environment Variable Comments
api_version str API Version Nautobot REST API
Version Added: 4.1.0
custom_fields dict Must exist in Nautobot and in key/value format
Version Added: 3.0.0
description str The description of the interface
Version Added: 3.0.0
enabled bool Sets whether interface shows enabled or disabled
Version Added: 3.0.0
mac_address str The MAC address of the interface
Version Added: 3.0.0
mode raw The mode of the interface
Version Added: 3.0.0
mtu int The MTU of the interface
Version Added: 3.0.0
name
required
str Name of the interface to be created
Version Added: 3.0.0
query_params list This can be used to override the specified values in ALLOWED_QUERY_PARAMS that is defined in plugins/module_utils/utils.py and provides control to users on what may make an object unique in their environment.
Version Added: 3.0.0
role raw The role of the interface
Version Added: 5.3.0
state str Use C(present) or C(absent) for adding or removing.
status raw The status of the interface. Required if I(state=present) and does not exist yet
Version Added: 3.0.0
tagged_vlans raw A list of tagged VLANS to be assigned to interface. Mode must be set to either C(Tagged) or C(Tagged All)
Version Added: 3.0.0
tags list Any tags that this item may need to be associated with
Version Added: 3.0.0
token
required
str The token created within Nautobot to authorize API access Can be omitted if the E(NAUTOBOT_TOKEN) environment variable is configured.
untagged_vlan raw The untagged VLAN to be assigned to interface
Version Added: 3.0.0
url
required
str The URL of the Nautobot instance resolvable by the Ansible host (for example: http://nautobot.example.com:8000) Can be omitted if the E(NAUTOBOT_URL) environment variable is configured.
validate_certs raw If C(no), SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates. Can be omitted if the E(NAUTOBOT_VALIDATE_CERTS) environment variable is configured.
virtual_machine
required
raw Name of the virtual machine the interface will be associated with (case-sensitive)
Version Added: 3.0.0

Notes

Note

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

Examples

- name: "Test Nautobot interface module"
  connection: local
  hosts: localhost
  gather_facts: False
  tasks:
    - name: Create interface within Nautobot with only required information
      networktocode.nautobot.vm_interface:
        url: http://nautobot.local
        token: thisIsMyToken
        virtual_machine: test100
        name: GigabitEthernet1
        state: present

    - name: Delete interface within nautobot
      networktocode.nautobot.vm_interface:
        url: http://nautobot.local
        token: thisIsMyToken
        virtual_machine: test100
        name: GigabitEthernet1
        state: absent

    - name: Create interface as a trunk port
      networktocode.nautobot.vm_interface:
        url: http://nautobot.local
        token: thisIsMyToken
        virtual_machine: test100
        name: GigabitEthernet25
        enabled: false
        untagged_vlan:
          name: Wireless
          location: "{{ test_location['key'] }}"
        tagged_vlans:
          - name: Data
            location: "{{ test_location['key'] }}"
          - name: VoIP
            location: "{{ test_location['key'] }}"
        mtu: 1600
        role: Server
        mode: Tagged
        state: present

    - name: |
        Create an interface and update custom_field data point,
        setting the value to True
      networktocode.nautobot.vm_interface:
        url: http://nautobot.local
        token: thisIsMyToken
        virtual_machine: test100
        name: GigabitEthernet26
        enabled: false
        custom_fields:
          monitored: True

Return Values

Key Data Type Description Returned
interface dict Serialized object as created or already existent within Nautobot on creation
msg str Message indicating failure or info about what has been achieved always

Authors

  • Benjamin Vergnaud (@bvergnaud)