Note
This plugin is part of the netbox.netbox collection.
To install it use: ansible-galaxy collection install netbox.netbox
.
To use it in a playbook, specify: netbox.netbox.netbox_ip_address
.
New in version 0.1.0: of netbox.netbox
The below requirements are needed on the host that executes this module.
Parameter | Choices/Defaults | Comments | ||
---|---|---|---|---|
data dictionary / required | Defines the IP address configuration | |||
address string | Required if state is present
| |||
assigned_object dictionary | Definition of the assigned object. | |||
device string | The device the interface is attached to. | |||
name string | The name of the interface | |||
virtual_machine string | The virtual machine the interface is attached to. | |||
custom_fields dictionary | must exist in Netbox | |||
description string | The description of the interface | |||
dns_name string | Hostname or FQDN | |||
family integer |
| Specifies with address family the IP address belongs to | ||
interface raw | 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 raw | The inside IP address this IP is assigned to | |||
prefix raw | 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 string |
| The role of the IP address | ||
status raw | The status of the IP address | |||
tags list / elements=string | Any tags that the IP address may need to be associated with | |||
tenant raw | The tenant that the device will be assigned to | |||
vrf raw | VRF that IP address is associated with | |||
netbox_token string / required | The token created within Netbox to authorize API access | |||
netbox_url string / required | URL of the Netbox instance resolvable by Ansible control host | |||
query_params list / elements=string | This can be used to override the specified values in ALLOWED_QUERY_PARAMS that is defined in plugins/module_utils/netbox_utils.py and provides control to users on what may make an object unique in their environment. | |||
state string |
| 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 raw | Default: "yes" | If no , SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates. |
Note
local
and hosts localhost
- 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 - name: Attach a new available IP of 192.168.1.0/24 to GigabitEthernet1 (NetBox 2.9+) netbox_ip_address: netbox_url: http://netbox.local netbox_token: thisIsMyToken data: prefix: 192.168.1.0/24 vrf: Test assigned_object: name: GigabitEthernet1 device: test100 state: new
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 |
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/netbox/netbox/netbox_ip_address_module.html