Skip to content

Latest commit

 

History

History
1214 lines (650 loc) · 27.1 KB

netbox_prefix_module.rst

File metadata and controls

1214 lines (650 loc) · 27.1 KB
orphan:

netbox.netbox.netbox_prefix module -- Creates or removes prefixes 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_prefix_module_requirements>` for details.

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

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

New in netbox.netbox 0.1.0

  • Creates or removes prefixes 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 prefix configuration

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

comments

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

string

added in netbox.netbox 3.10.0

Comments that may include additional information in regards to the prefix

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

custom_fields

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

dictionary

Must exist in NetBox and in key/value format

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

description

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

string

The description of the prefix

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

family

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

integer

Specifies which address family the prefix prefix belongs to

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

is_pool

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

boolean

All IP Addresses within this prefix are considered usable

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

Choices:

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

mark_utilized

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

boolean

added in netbox.netbox 3.8.0

Treat as 100% utilized

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

Choices:

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

parent

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

any

Required if state is present and first_available is yes. Will get a new available prefix in this parent prefix.

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

prefix

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

any

Required if state is present and first_available is False. Will allocate or free this prefix.

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

prefix_length

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

integer

Required ONLY if state is present and first_available is yes.
Will get a new available prefix of the given prefix_length in this parent prefix.
.. rst-class:: ansible-option-title

prefix_role

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

any

The role of the prefix

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

site

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

any

Site that prefix is associated with

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

status

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

any

The status of the prefix

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

tags

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

list / elements=any

Any tags that the prefix may need to be associated with

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

tenant

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

any

The tenant that the prefix will be assigned to

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

vlan

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

any

The VLAN the prefix will be assigned to

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

vrf

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

any

VRF that prefix is associated with

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

first_available

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

boolean

If yes and state present, if an parent is given, it will get the first available prefix of the given prefix_length inside the given parent (and vrf, if given). Unused with state absent.

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

Choices:

.. 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

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 prefix module"
  connection: local
  hosts: localhost
  gather_facts: False

  tasks:
    - name: Create prefix within NetBox with only required information
      netbox.netbox.netbox_prefix:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          prefix: 10.156.0.0/19
        state: present

    - name: Delete prefix within netbox
      netbox.netbox.netbox_prefix:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          prefix: 10.156.0.0/19
        state: absent

    - name: Create prefix with several specified options
      netbox.netbox.netbox_prefix:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          family: 4
          prefix: 10.156.32.0/19
          site: Test Site
          vrf: Test VRF
          tenant: Test Tenant
          vlan:
            name: Test VLAN
            site: Test Site
            tenant: Test Tenant
            vlan_group: Test Vlan Group
          status: Reserved
          prefix_role: Network of care
          description: Test description
          is_pool: true
          tags:
            - Schnozzberry
        state: present

    - name: Get a new /24 inside 10.156.0.0/19 within NetBox - Parent doesn't exist
      netbox.netbox.netbox_prefix:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          parent: 10.156.0.0/19
          prefix_length: 24
        state: present
        first_available: yes

    - name: Create prefix within NetBox with only required information
      netbox.netbox.netbox_prefix:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          prefix: 10.156.0.0/19
        state: present

    - name: Get a new /24 inside 10.156.0.0/19 within NetBox
      netbox.netbox.netbox_prefix:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          parent: 10.156.0.0/19
          prefix_length: 24
        state: present
        first_available: yes

    - name: Get a new /24 inside 10.157.0.0/19 within NetBox with additional values
      netbox.netbox.netbox_prefix:
        netbox_url: http://netbox.local
        netbox_token: thisIsMyToken
        data:
          parent: 10.157.0.0/19
          prefix_length: 24
          vrf: Test VRF
          site: Test Site
        state: present
        first_available: yes

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

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

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

prefix

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

dictionary

Serialized object as created or already existent within NetBox

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

Returned: on creation

Authors

  • Mikhail Yohman (@FragmentedPacket)
  • Anthony Ruhier (@Anthony25)

Collection links

Issue Tracker Repository (Sources)