community.general.packet_volume module – Create/delete a volume in Packet host

Note

This module is part of the community.general collection (version 10.1.0).

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. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: community.general.packet_volume.

New in community.general 0.2.0

Synopsis

Requirements

The below requirements are needed on the host that executes this module.

  • packet-python >= 1.35

Parameters

Parameter

Comments

auth_token

string

Packet API token. You can also supply it in environment variable PACKET_API_TOKEN.

billing_cycle

string

Billing cycle for new volume.

Choices:

  • "hourly" ← (default)

  • "monthly"

description

string

User-defined description attribute for Packet volume.

It is used used as idempotent identifier - if volume with given description exists, new one is not created.

facility

string

Location of the volume.

Volumes can only be attached to device in the same location.

id

string

UUID of a volume.

locked

boolean

Create new volume locked.

Choices:

  • false ← (default)

  • true

name

string

Selector for API-generated name of the volume

plan

string

storage_1 for standard tier, storage_2 for premium (performance) tier.

Tiers are described at https://www.packet.com/cloud/storage/.

Choices:

  • "storage_1" ← (default)

  • "storage_2"

project_id

string / required

ID of project of the device.

size

integer

Size of the volume in gigabytes.

snapshot_policy

dictionary

Snapshot policy for new volume.

snapshot_count

integer / required

How many snapshots to keep, a positive integer.

snapshot_frequency

string / required

Frequency of snapshots.

Choices:

  • "15min"

  • "1hour"

  • "1day"

  • "1week"

  • "1month"

  • "1year"

state

string

Desired state of the volume.

Choices:

  • "present" ← (default)

  • "absent"

Attributes

Attribute

Support

Description

check_mode

Support: full

Can run in check_mode and return changed status prediction without modifying target.

diff_mode

Support: none

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode.

Examples

# All the examples assume that you have your Packet API token in env var PACKET_API_TOKEN.
# You can also pass the api token in module param auth_token.

- hosts: localhost
  vars:
    volname: testvol123
    project_id: 53000fb2-ee46-4673-93a8-de2c2bdba33b

  tasks:
    - name: Create volume
      community.general.packet_volume:
        description: "{{ volname }}"
        project_id: "{{ project_id }}"
        facility: 'ewr1'
        plan: 'storage_1'
        state: present
        size: 10
        snapshot_policy:
          snapshot_count: 10
          snapshot_frequency: 1day
      register: result_create

    - name: Delete volume
      community.general.packet_volume:
        id: "{{ result_create.id }}"
        project_id: "{{ project_id }}"
        state: absent

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

description

string

The user-defined description of the volume resource.

Returned: success

Sample: "Just another volume"

id

string

UUID of specified volume

Returned: success

Sample: "53000fb2-ee46-4673-93a8-de2c2bdba33c"

name

string

The API-generated name of the volume resource.

Returned: if volume is attached/detached to/from some device

Sample: "volume-a91dc506"

Authors

  • Tomas Karasek (@t0mk)

  • Nurfet Becirevic (@nurfet-becirevic)