community.digitalocean.digital_ocean_block_storage 模块 – 在 DigitalOcean 中创建/销毁或附加/分离块存储卷

注意

此模块是 community.digitalocean 集合 (版本 1.27.0) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.digitalocean

要在 playbook 中使用它,请指定:community.digitalocean.digital_ocean_block_storage

概要

  • 在 DigitalOcean 中创建/销毁块存储卷,或将块存储卷附加/分离到 Droplet。

参数

参数

注释

baseurl

字符串

DigitalOcean API 基址 URL。

默认值: "https://api.digitalocean.com/v2"

block_size

整数

块存储卷的大小(以 GB 为单位)。

command=createstate=present 时为必填项。

如果包含 snapshot_id,则忽略此项。

如果 block_size > 卷的当前大小,则调整卷的大小。

command

字符串 / 必填项

要执行的操作。

选项

  • "create"

  • "attach"

description

字符串

块存储卷的描述。

droplet_id

整数

要操作的 Droplet ID。

command=attach 时为必填项。

oauth_token

别名:api_token

字符串

DigitalOcean OAuth 令牌。

可以使用其他几个环境变量来提供此值。

例如,- DO_API_TOKEN, DO_API_KEY, DO_OAUTH_TOKENOAUTH_TOKEN

project_name

别名:project

字符串

要将资源分配到的项目(项目名称,而不是 UUID)。

默认为帐户的默认项目(空字符串)。

目前仅在 command=create 时支持。

默认值: ""

region

字符串

块存储卷所在区域的代码。

如果包含 snapshot_id,则忽略此项。

snapshot_id

字符串

要创建块存储卷的快照 ID。

如果包含此项,则忽略 regionblock_size 并将其更改为 null

state

字符串 / 必填项

指示目标的所需状态。

选项

  • "present"

  • "absent"

timeout

整数

用于轮询 DigitalOcean API 的超时时间(以秒为单位)。

默认值: 30

validate_certs

布尔值

如果设置为 no,则不会验证 SSL 证书。

此项仅应在使用自签名证书的个人控制站点上设置为 no

选项

  • false

  • true ← (默认)

volume_name

字符串 / 必填项

块存储卷的名称。

备注

注意

  • 可以使用两个环境变量 DO_API_KEY 和 DO_API_TOKEN。它们都指的是 v2 令牌。

  • 如果使用 snapshot_id,则忽略 region 和 block_size 并将其更改为 null。

示例

- name: Create new Block Storage
  community.digitalocean.digital_ocean_block_storage:
    state: present
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    command: create
    region: nyc1
    block_size: 10
    volume_name: nyc1-block-storage

- name: Create new Block Storage (and assign to Project "test")
  community.digitalocean.digital_ocean_block_storage:
    state: present
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    command: create
    region: nyc1
    block_size: 10
    volume_name: nyc1-block-storage
    project_name: test

- name: Resize an existing Block Storage
  community.digitalocean.digital_ocean_block_storage:
    state: present
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    command: create
    region: nyc1
    block_size: 20
    volume_name: nyc1-block-storage

- name: Delete Block Storage
  community.digitalocean.digital_ocean_block_storage:
    state: absent
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    command: create
    region: nyc1
    volume_name: nyc1-block-storage

- name: Attach Block Storage to a Droplet
  community.digitalocean.digital_ocean_block_storage:
    state: present
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    command: attach
    volume_name: nyc1-block-storage
    region: nyc1
    droplet_id: <ID>

- name: Detach Block Storage from a Droplet
  community.digitalocean.digital_ocean_block_storage:
    state: absent
    oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
    command: attach
    volume_name: nyc1-block-storage
    region: nyc1
    droplet_id: <ID>

返回值

常见的返回值已在 此处 记录,以下是此模块独有的字段

描述

assign_status

字符串

分配状态 (ok, not_found, assigned, already_assigned, service_down)

已返回:changed

示例: "assigned"

id

字符串

创建过程中返回的块存储卷的唯一标识符。

已返回:changed

示例: "69b25d9a-494c-12e6-a5af-001f53126b44"

msg

字符串

执行过程中遇到的信息或错误消息。

已返回:changed

示例: "No project named test2 found"

resources

字典

项目分配中涉及的资源分配。

已返回:changed

示例: {"assigned_at": "2021-10-25T17:39:38Z", "links": {"self": "https://api.digitalocean.com/v2/volumes/8691c49e-35ba-11ec-9406-0a58ac1472b9"}, "status": "assigned", "urn": "do:volume:8691c49e-35ba-11ec-9406-0a58ac1472b9"}

作者

  • Harnek Sidhu (@harneksidhu)