community.general.packet_ip_subnet – Assign IP subnet to a bare metal server.
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.0.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 | |
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.
| |
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 == With state == 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) <[email protected]>
- Nurfet Becirevic (@nurfet-becirevic) <[email protected]>
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/packet_ip_subnet_module.html