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

Creates or removes IP addresses from Netbox

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

Authors: Mikhail Yohman (@FragmentedPacket), Anthony Ruhier (@Anthony25)

preview | supported by community

Install Ansible via pip

Install with pip install ansible==2.9.27

Description

Creates or removes IP addresses from Netbox


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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

Inputs

    
data:
    description:
    - Defines the IP address configuration
    required: true
    suboptions:
      address:
        description:
        - Required if state is C(present)
      custom_fields:
        description:
        - must exist in Netbox
      description:
        description:
        - The description of the interface
      family:
        choices:
        - 4
        - 6
        description:
        - Specifies with address family the IP address belongs to
      interface:
        description:
        - 'The name and device of the interface that the IP address should be assigned
          to

          Required if state is C(present) and a prefix specified.

          '
      nat_inside:
        description:
        - The inside IP address this IP is assigned to
      prefix:
        description:
        - 'With state C(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 C(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 C(present) or C(new) when no address is given.

          Unused if an address is specified.

          '
      role:
        choices:
        - Loopback
        - Secondary
        - Anycast
        - VIP
        - VRRP
        - HSRP
        - GLBP
        - CARP
        description:
        - The role of the IP address
      status:
        choices:
        - Active
        - Reserved
        - Deprecated
        - DHCP
        description:
        - The status of the IP address
      tags:
        description:
        - Any tags that the IP address may need to be associated with
      tenant:
        description:
        - The tenant that the device will be assigned to
      vrf:
        description:
        - VRF that IP address is associated with

state:
    choices:
    - absent
    - new
    - present
    default: present
    description:
    - '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).

      '

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

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

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

ip_address:
  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