community.general.packet_ip_subnet – Assign IP subnet to a bare metal server.¶
Note
This plugin is part of the community.general collection (version 2.5.1).
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:
Authors¶
Tomas Karasek (@t0mk) <tom.to.the.k@gmail.com>
Nurfet Becirevic (@nurfet-becirevic) <nurfet.becirevic@gmail.com>