hetzner.hcloud.volume module – Create and manage block Volume on the Hetzner Cloud.

Note

This module is part of the hetzner.hcloud collection (version 2.5.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 hetzner.hcloud. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: hetzner.hcloud.volume.

Synopsis

  • Create, update and attach/detach block Volume on the Hetzner Cloud.

Aliases: hcloud_volume

Requirements

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

  • python-dateutil >= 2.7.5

  • requests >=2.20

Parameters

Parameter

Comments

api_endpoint

aliases: endpoint

string

The API Endpoint for the Hetzner Cloud.

You can also set this option by using the HCLOUD_ENDPOINT environment variable.

Default: "https://api.hetzner.cloud/v1"

api_token

string / required

The API Token for the Hetzner Cloud.

You can also set this option by using the HCLOUD_TOKEN environment variable.

automount

boolean

Automatically mount the Volume.

Choices:

  • false ← (default)

  • true

delete_protection

boolean

Protect the Volume for deletion.

Choices:

  • false

  • true

format

string

Automatically Format the volume on creation

Can only be used in case the Volume does not exist.

Choices:

  • "xfs"

  • "ext4"

id

integer

The ID of the Hetzner Cloud Block Volume to manage.

Only required if no volume name is given

labels

dictionary

User-defined key-value pairs.

location

string

Location of the Hetzner Cloud Volume.

Required if no server is given and Volume does not exist.

name

string

The Name of the Hetzner Cloud Block Volume to manage.

Only required if no volume id is given or a volume does not exist.

server

string

Server Name the Volume should be assigned to.

Required if no location is given and Volume does not exist.

size

integer

The size of the Block Volume in GB.

Required if volume does not yet exists.

state

string

State of the Volume.

Choices:

  • "absent"

  • "present" ← (default)

See Also

See also

Documentation for Hetzner Cloud API

Complete reference for the Hetzner Cloud API.

Examples

- name: Create a Volume
  hetzner.hcloud.volume:
    name: my-volume
    location: fsn1
    size: 100
    state: present
- name: Create a Volume and format it with ext4
  hetzner.hcloud.volume:
    name: my-volume
    location: fsn
    format: ext4
    size: 100
    state: present
- name: Mount a existing Volume and automount
  hetzner.hcloud.volume:
    name: my-volume
    server: my-server
    automount: true
    state: present
- name: Mount a existing Volume and automount
  hetzner.hcloud.volume:
    name: my-volume
    server: my-server
    automount: true
    state: present
- name: Ensure the Volume is absent (remove if needed)
  hetzner.hcloud.volume:
    name: my-volume
    state: absent

Return Values

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

Key

Description

hcloud_volume

complex

The block Volume

Returned: Always

delete_protection

boolean

added in hetzner.hcloud 0.1.0

True if Volume is protected for deletion

Returned: always

Sample: false

id

integer

ID of the Volume

Returned: Always

Sample: 12345

labels

dictionary

User-defined labels (key-value pairs)

Returned: Always

Sample: {"key": "value", "mylabel": 123}

linux_device

string

added in hetzner.hcloud 0.1.0

Path to the device that contains the Volume.

Returned: always

Sample: "/dev/disk/by-id/scsi-0HC_Volume_12345"

location

string

Location name where the Volume is located at

Returned: Always

Sample: "fsn1"

name

string

Name of the Volume

Returned: Always

Sample: "my-volume"

server

string

Server name where the Volume is attached to

Returned: Always

Sample: "my-server"

size

integer

Size in GB of the Volume

Returned: Always

Sample: 1337

Authors

  • Christopher Schmitt (@cschmitt-hcloud)