cloudscale_ch.cloud.volume 模块 – 管理 cloudscale.ch IaaS 服务上的卷。

注意

此模块是 cloudscale_ch.cloud 集合 (版本 2.4.0) 的一部分。

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

要安装它,请使用: ansible-galaxy collection install cloudscale_ch.cloud

要在 playbook 中使用它,请指定: cloudscale_ch.cloud.volume

cloudscale_ch.cloud 1.0.0 中的新增功能

概要

  • 在 cloudscale.ch IaaS 服务上创建、附加/分离、更新和删除卷。

别名:cloudscale_volume

参数

参数

注释

api_timeout

整数

调用 cloudscale.ch API 的超时时间(秒)。

这也可以通过 CLOUDSCALE_API_TIMEOUT 环境变量传递。

默认值: 45

api_token

字符串 / 必填

cloudscale.ch API 令牌。

这也可以通过 CLOUDSCALE_API_TOKEN 环境变量传递。

api_url

字符串

cloudscale_ch.cloud 1.3.0 中新增

cloudscale.ch API URL。

这也可以通过 CLOUDSCALE_API_URL 环境变量传递。

默认值: "https://api.cloudscale.ch/v1"

name

字符串

卷的名称。要更改现有卷,必须提供名称或 UUID。

servers

别名:server_uuids,server_uuid

列表 / 元素=字符串

此卷附加到的服务器的 UUID。将其设置为 [] 以分离卷。目前,卷只能附加到单个服务器。

别名 server_uuidsserver_uuid 已弃用,并将在此集合的 3.0.0 版本中删除。

size_gb

整数

卷的大小(GB)。

state

字符串

卷的状态。

选项

  • "present" ← (默认)

  • "absent"

tags

字典

与卷关联的标签。将其设置为 {} 以清除所有标签。

type

字符串

卷的类型。创建卷后无法更改。在创建卷时默认为 ssd

选项

  • "ssd"

  • "bulk"

uuid

字符串

卷的 UUID。要更改现有卷,必须提供名称或 UUID。

zone

字符串

卷所在的区域(例如 lpg1rma1)。创建卷后无法更改。默认为项目默认区域。

备注

注意

  • 要创建新的卷,至少需要 *name* 和 *size_gb* 选项。

  • 可以在同一任务中创建卷并将其附加到服务器。

  • 所有操作均使用 cloudscale.ch 公共 API v1 执行。

  • 有关详细信息,请参阅完整的 API 文档:https://www.cloudscale.ch/en/api/v1

  • 所有操作都需要有效的 API 令牌。您可以使用 cloudscale.ch 控制面板在 https://control.cloudscale.ch 创建任意数量的令牌。

示例

# Create a new SSD volume
- name: Create an SSD volume
  cloudscale_ch.cloud.volume:
    name: my_ssd_volume
    zone: 'lpg1'
    size_gb: 50
    api_token: xxxxxx
  register: my_ssd_volume

# Attach an existing volume to a server
- name: Attach volume to server
  cloudscale_ch.cloud.volume:
    uuid: "{{ my_ssd_volume.uuid }}"
    servers:
      - ea3b39a3-77a8-4d0b-881d-0bb00a1e7f48
    api_token: xxxxxx

# Create and attach a volume to a server
- name: Create and attach volume to server
  cloudscale_ch.cloud.volume:
    name: my_ssd_volume
    zone: 'lpg1'
    size_gb: 50
    servers:
      - ea3b39a3-77a8-4d0b-881d-0bb00a1e7f48
    api_token: xxxxxx

# Detach volume from server
- name: Detach volume from server
  cloudscale_ch.cloud.volume:
    uuid: "{{ my_ssd_volume.uuid }}"
    servers: []
    api_token: xxxxxx

# Delete a volume
- name: Delete volume
  cloudscale_ch.cloud.volume:
    name: my_ssd_volume
    state: absent
    api_token: xxxxxx

返回值

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

描述

href

字符串

获取有关此卷详细信息的 API URL。

已返回:state == present

示例: "https://api.cloudscale.ch/v1/volumes/2db69ba3-1864-4608-853a-0771b6885a3a"

name

字符串

卷的显示名称。

已返回:state == present

示例: "my_ssd_volume"

server_uuids

列表 / 元素=字符串

此卷附加到的服务器的 UUID。此返回值已弃用,将来在该字段从 API 中删除时将消失。

已返回:state == present

示例: ["47cec963-fcd2-482f-bdb6-24461b2d47b1"]

servers

列表 / 元素=字符串

此卷附加到的服务器列表。

已返回:state == present

示例: [{"href": "https://api.cloudscale.ch/v1/servers/47cec963-fcd2-482f-bdb6-24461b2d47b1", "name": "my_server", "uuid": "47cec963-fcd2-482f-bdb6-24461b2d47b1"}]

size_gb

字符串

卷的大小(GB)。

已返回:state == present

示例: "50"

state

字符串

卷的当前状态。

已返回:成功

示例: "present"

tags

字典

与卷关联的标签。

已返回:state == present

示例: {"project": "my project"}

type

字符串

卷的类型。

已返回:state == present

示例: "bulk"

uuid

字符串

此卷的唯一标识符。

已返回:state == present

示例: "2db69ba3-1864-4608-853a-0771b6885a3a"

zone

字典

卷的区域。

已返回:state == present

示例: {"slug": "lpg1"}

作者

  • Gaudenz Steinlin (@gaudenz)

  • René Moser (@resmo)

  • Denis Krienbühl (@href)