community.general.packet_ip_subnet – Assign IP subnet to a bare metal server.
Note
This plugin is part of the community.general collection (version 3.8.1).
You might already have this collection installed if you are using the ansible
package. It is not included in ansible-core
. To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.packet_ip_subnet
.
New in version 0.2.0: of community.general
Synopsis
- Assign or unassign IPv4 or IPv6 subnets to or from a device in the Packet host.
- IPv4 subnets must come from already reserved block.
- IPv6 subnets must come from publicly routable /56 block from your project.
- See https://support.packet.com/kb/articles/elastic-ips for more info on IP block reservation.
Requirements
The below requirements are needed on the host that executes this module.
- packet-python >= 1.35
- python >= 2.6
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
auth_token string | Packet API token. You can also supply it in env var PACKET_API_TOKEN . | |
cidr string / required | IPv4 or IPv6 subnet which you want to manage. It must come from a reserved block for your project in the Packet Host. aliases: name | |
device_count integer | Default: 100 | The number of devices to retrieve from the project. The max allowed value is 1000. See https://www.packet.com/developers/api/#retrieve-all-devices-of-a-project for more info. |
device_id string | UUID of a device to/from which to assign/remove a subnet. | |
hostname string | A hostname of a device to/from which to assign/remove a subnet. | |
project_id string | UUID of a project of the device to/from which to assign/remove a subnet. | |
state string |
| Desired state of the IP subnet on the specified device. With state == present , you must specify either hostname or device_id. Subnet with given CIDR will then be assigned to the specified device.With state == absent , you can specify either hostname or device_id. The subnet will be removed from specified devices.If you leave both hostname and device_id empty, the subnet will be removed from any device it's assigned to. |
Examples
# All the examples assume that you have your Packet API token in env var PACKET_API_TOKEN. # You can also pass it to the auth_token parameter of the module instead. - name: Create 1 device and assign an arbitrary public IPv4 subnet to it hosts: localhost tasks: - packet_device: project_id: 89b497ee-5afc-420a-8fb5-56984898f4df hostnames: myserver operating_system: ubuntu_16_04 plan: baremetal_0 facility: sjc1 state: active # Pick an IPv4 address from a block allocated to your project. - community.general.packet_ip_subnet: project_id: 89b497ee-5afc-420a-8fb5-56984898f4df hostname: myserver cidr: "147.75.201.78/32" # Release IP address 147.75.201.78 - name: Unassign IP address from any device in your project hosts: localhost tasks: - community.general.packet_ip_subnet: project_id: 89b497ee-5afc-420a-8fb5-56984898f4df cidr: "147.75.201.78/32" state: absent
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
changed boolean | success | True if an IP address assignments were altered in any way (created or removed). Sample: True |
device_id string | success | UUID of the device associated with the specified IP address. |
subnet dictionary | success | Dict with data about the handled IP subnet. Sample: {'address': '147.75.90.241', 'address_family': 4, 'assigned_to': {'href': '/devices/61f9aa5e-0530-47f5-97c2-113828e61ed0'}, 'cidr': 31, 'created_at': '2017-08-07T15:15:30Z', 'enabled': True, 'gateway': '147.75.90.240', 'href': '/ips/31eda960-0a16-4c0f-b196-f3dc4928529f', 'id': '1eda960-0a16-4c0f-b196-f3dc4928529f', 'manageable': True, 'management': True, 'netmask': '255.255.255.254', 'network': '147.75.90.240', 'public': True} |
Authors
- Tomas Karasek (@t0mk) <tom.to.the.k@gmail.com>
- Nurfet Becirevic (@nurfet-becirevic) <nurfet.becirevic@gmail.com>
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/packet_ip_subnet_module.html