Skip to content

ip_address

Collection Note

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

ansible-galaxy collection install networktocode.nautobot
Added in version 1.0.0.

You need further requirements to be able to use this module, see the Requirements section for details.

Synopsis

  • Creates or removes IP addresses from Nautobot

Requirements

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

Parameters

Parameter Defaults / Choices Comments
address
str
Required if I(state=present) and the IP address does not exist yet
Version Added: 3.0.0
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
dns_name
str
Hostname or FQDN
Version Added: 3.0.0
id
str
The UUID of the object to operate on
Version Added: 5.13.0
namespace
str
Default: Global
namespace that IP address is associated with. IPs are unique per namespaces.
Version Added: 5.0.0
nat_inside
raw
The inside IP address this IP is assigned to
Version Added: 3.0.0
parent
raw
With state C(new), it will force to get the next available IP in this prefix. Required if state is C(present) or C(new) when no address is given. Unused if an address is specified.
Version Added: 3.0.0
query_params
list / elements=str
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 IP address
Version Added: 3.0.0
state
str
Default: present
Choices: absent, new, present
Use C(present), C(new) or C(absent) for adding, force adding or removing. C(present) will check if the IP is already created, and return it if true. C(new) will force to create it anyway (useful for anycasts, for example).
status
raw
The status of the IP address
Required if I(state=present) and does not exist yet
Version Added: 3.0.0
tags
list / elements=raw
Any tags that this item may need to be associated with
Version Added: 3.0.0
tenant
raw
The tenant that the device will be assigned to
Version Added: 3.0.0
token
str
required
The token created within Nautobot to authorize API access
Can be omitted if the E(NAUTOBOT_TOKEN) environment variable is configured.
type
str
Choices: DHCP, Host, SLAAC The type of the IP address
Version Added: 5.0.0
url
str
required
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
Default: True
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.

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 IP address module"
  connection: local
  hosts: localhost
  gather_facts: false

  tasks:
    - name: Create IP address within Nautobot with only required information
      networktocode.nautobot.ip_address:
        url: http://nautobot.local
        token: thisIsMyToken
        address: 192.168.1.10
        status: active
        state: present
    - name: Force to create (even if it already exists) the IP
      networktocode.nautobot.ip_address:
        url: http://nautobot.local
        token: thisIsMyToken
        address: 192.168.1.10
        state: new
    - name: Create the same IP under another namespace
      networktocode.nautobot.ip_address:
        url: http://nautobot.local
        token: thisIsMyToken
        address: 192.168.1.10
        namespace: MyNewNamespace
        state: new
    - name: Get a new available IP inside 192.168.1.0/24
      networktocode.nautobot.ip_address:
        url: http://nautobot.local
        token: thisIsMyToken
        parent: 192.168.1.0/24
        state: new
    - name: Delete IP address within nautobot
      networktocode.nautobot.ip_address:
        url: http://nautobot.local
        token: thisIsMyToken
        address: 192.168.1.10
        state: absent
    - name: Create IP address with several specified options in namespace Private
      networktocode.nautobot.ip_address:
        url: http://nautobot.local
        token: thisIsMyToken
        address: 192.168.1.20
        tenant: Test Tenant
        status: Reserved
        namespace: Private
        role: Loopback
        description: Test description
        tags:
          - Schnozzberry
        state: present
    - name: Create IP address and assign a nat_inside IP
      networktocode.nautobot.ip_address:
        url: http://nautobot.local
        token: thisIsMyToken
        address: 192.168.1.30
        nat_inside:
          address: 192.168.1.20
    - name: Delete IP address by id
      networktocode.nautobot.ip_address:
        url: http://nautobot.local
        token: thisIsMyToken
        id: 00000000-0000-0000-0000-000000000000
        state: absent

Return Values

Key Data Type Description Returned
ip_address 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

  • Mikhail Yohman (@fragmentedpacket)
  • Anthony Ruhier (@anthony25)