# netbox_ip_address – Creates or removes IP addresses from Netbox

New in version 2.8.

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Return Values

- Status

## Synopsis

- Creates or removes IP addresses from Netbox

## Requirements

The below requirements are needed on the host that executes this module.

- pynetbox

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
data - / required |  | Defines the IP address configuration
| address - |  | Required if state is `present`
| custom_fields - |  | must exist in Netbox
| description - |  | The description of the interface

family
-

Choices:
- 4
- 6

Specifies with address family the IP address belongs to

| interface - |  | The name and device of the interface that the IP address should be assigned to Required if state is `present` and a prefix specified.
| nat_inside - |  | The inside IP address this IP is assigned to

prefix
-

With state `present`, if an interface is given, it will ensure that an IP inside this prefix (and vrf, if given) is attached to this interface. Otherwise, it will get the next available IP of this prefix and attach it. With state `new`, it will force to get the next available IP in this prefix. If an interface is given, it will also force to attach it. Required if state is `present` or `new` when no address is given. Unused if an address is specified.

role
-

Choices:
- Loopback
- Secondary
- Anycast
- VIP
- VRRP
- HSRP
- GLBP
- CARP

The role of the IP address

status
-

Choices:
- Active
- Reserved
- Deprecated
- DHCP

The status of the IP address

| tags - |  | Any tags that the IP address may need to be associated with
| tenant - |  | The tenant that the device will be assigned to
| vrf - |  | VRF that IP address is associated with
netbox_token - / required |  | The token created within Netbox to authorize API access
netbox_url - / required |  | URL of the Netbox instance resolvable by Ansible control host

state
-

Choices:
- absent
- new
- present ←

Use `present`, `new` or `absent` for adding, force adding or removing. `present` will check if the IP is already created, and return it if true. `new` will force to create it anyway (useful for anycasts, for example).

validate_certs
boolean

Choices:
- no
- yes ←

If `no`, SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates.

## Notes

Note

- Tags should be defined as a YAML list

- This should be ran with connection `local` and hosts `localhost`

## Examples

    - name: "Test Netbox IP address module"
      connection: local
      hosts: localhost
      gather_facts: False

      tasks:
        - name: Create IP address within Netbox with only required information
          netbox_ip_address:
            netbox_url: http://netbox.local
            netbox_token: thisIsMyToken
            data:
              address: 192.168.1.10
            state: present
        - name: Force to create (even if it already exists) the IP
          netbox_ip_address:
            netbox_url: http://netbox.local
            netbox_token: thisIsMyToken
            data:
              address: 192.168.1.10
            state: new
        - name: Get a new available IP inside 192.168.1.0/24
          netbox_ip_address:
            netbox_url: http://netbox.local
            netbox_token: thisIsMyToken
            data:
              prefix: 192.168.1.0/24
            state: new
        - name: Delete IP address within netbox
          netbox_ip_address:
            netbox_url: http://netbox.local
            netbox_token: thisIsMyToken
            data:
              address: 192.168.1.10
            state: absent
        - name: Create IP address with several specified options
          netbox_ip_address:
            netbox_url: http://netbox.local
            netbox_token: thisIsMyToken
            data:
              family: 4
              address: 192.168.1.20
              vrf: Test
              tenant: Test Tenant
              status: Reserved
              role: Loopback
              description: Test description
              tags:
                - Schnozzberry
            state: present
        - name: Create IP address and assign a nat_inside IP
          netbox_ip_address:
            netbox_url: http://netbox.local
            netbox_token: thisIsMyToken
            data:
              family: 4
              address: 192.168.1.30
              vrf: Test
              nat_inside:
                address: 192.168.1.20
                vrf: Test
              interface:
                name: GigabitEthernet1
                device: test100
        - name: Ensure that an IP inside 192.168.1.0/24 is attached to GigabitEthernet1
          netbox_ip_address:
            netbox_url: http://netbox.local
            netbox_token: thisIsMyToken
            data:
              prefix: 192.168.1.0/24
              vrf: Test
              interface:
                name: GigabitEthernet1
                device: test100
            state: present
        - name: Attach a new available IP of 192.168.1.0/24 to GigabitEthernet1
          netbox_ip_address:
            netbox_url: http://netbox.local
            netbox_token: thisIsMyToken
            data:
              prefix: 192.168.1.0/24
              vrf: Test
              interface:
                name: GigabitEthernet1
                device: test100
            state: new

## Return Values

Common return values are documented here, the following are the fields unique to this module:

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

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Mikhail Yohman (@FragmentedPacket)

- Anthony Ruhier (@Anthony25)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.