volume_action

Synopsis

  • Attach or detach volumes from Droplets.

  • Block storage actions are commands that can be given to a DigitalOcean Block Storage Volume.

  • Each volume may only be attached to a single Droplet.

  • However, up to five volumes may be attached to a Droplet at a time.

  • Pre-formatted volumes will be automatically mounted to Ubuntu, Debian, Fedora, Fedora Atomic, and CentOS Droplets created on or after April 26, 2018 when attached.

  • On older Droplets, additional configuration is required.

  • View the API documentation at https://docs.digitalocean.com/reference/api/api-reference/#tag/Block-Storage-Actions.

Requirements

  • pydo >= 0.1.3
  • azure-core >= 1.26.1

Parameters

Parameter Choices Default Comments
client_override_options
(dict)
Client override options (developer use). For example, can be used to override the DigitalOcean API endpoint for an internal test suite. If provided, these options will knock out existing options.
droplet_name
(str)
The name of the Droplet to attach or detach to the volume to.
module_override_options
(dict)
Module override options (developer use). Can be used to override module options to support experimental or future options. If provided, these options will knock out existing options.
region
(str)
Set to the slug representing the region where the volume and Droplet is located.
state
(str)
  • present
  • absent
present State of the resource, present to create, absent to destroy.
timeout
(int)
300 Polling timeout in seconds.
token
(str)
DigitalOcean API token. There are several environment variables which can be used to provide this value. DIGITALOCEAN_ACCESS_TOKEN, DIGITALOCEAN_TOKEN, DO_API_TOKEN, DO_API_KEY, DO_OAUTH_TOKEN and OAUTH_TOKEN
volume_name
(str)
The name of the block storage volume to attach or detach.

Examples

- name: Attach volume to Droplet
  digitalocean.cloud.volume_action:
    token: "{{ token }}"
    state: present
    volume_name: test-vol-delete-1
    droplet_name: test-droplet-delete-1
    region: nyc3

- name: Detach volume from Droplet
  digitalocean.cloud.volume_action:
    token: "{{ token }}"
    state: absent
    volume_name: test-vol-delete-1
    droplet_name: test-droplet-delete-1
    region: nyc3

Return Values

Key Returned Description
action
(dict)
always DigitalOcean volume action information.

Sample:

{
  "completed_at": "2020-11-12T17:51:14Z",
  "id": 72531856,
  "region": {
    "available": true,
    "features": [
      "private_networking",
      "backups",
      "ipv6",
      "metadata"
    ],
    "name": "New York 1",
    "sizes": [
      "s-1vcpu-1gb",
      "s-1vcpu-2gb",
      "s-1vcpu-3gb",
      "s-2vcpu-2gb",
      "s-3vcpu-1gb",
      "s-2vcpu-4gb",
      "s-4vcpu-8gb",
      "s-6vcpu-16gb",
      "s-8vcpu-32gb",
      "s-12vcpu-48gb",
      "s-16vcpu-64gb",
      "s-20vcpu-96gb",
      "s-24vcpu-128gb",
      "s-32vcpu-192gb"
    ],
    "slug": "nyc1"
  },
  "region_slug": "nyc1",
  "resource_type": "volume",
  "started_at": "2020-11-12T17:51:03Z",
  "status": "completed",
  "type": "attach_volume"
}
error
(dict)
failure DigitalOcean API error.

Sample:

{
  "Message": "Informational error message.",
  "Reason": "Unauthorized",
  "Status Code": 401
}
msg
(str)
always DigitalOcean volume action information.

Sample:

[
  "No volume named test-vol in nyc3",
  "Multiple volumes named test-vol in nyc3",
  "No Droplet named test-droplet in nyc3",
  "Multiple Droplets named test-droplet in nyc3",
  "Volume test-vol in nyc3 attached to test-droplet",
  "Attached volume test-vol in nyc3 to test-droplet",
  "Volume test-vol in nyc3 not attached to test-droplet",
  "Detached volume test-vol in nyc3 from test-droplet",
  "Volume test-vol in nyc3 would be attahed to test-droplet",
  "Volume test-vol in nyc3 would be detached from test-droplet"
]