cloudscale_ch.cloud.custom_image 模块 – 管理 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.custom_image

cloudscale_ch.cloud 2.2.0 中的新增功能

概要

  • 导入、修改和删除自定义镜像。

参数

参数

注释

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"

firmware_type

字符串

将用于使用此镜像创建的服务器的固件类型。

选项

  • "bios" ←(默认)

  • "uefi"

force_retry

布尔值

即使使用相同的名称和 URL 的导入失败已存在,也重试镜像导入。这对于从下载错误中恢复是必要的。

选项

  • false ←(默认)

  • true

name

字符串

自定义镜像的人类可读名称。必须存在名称或 UUID 才能更改现有镜像。

slug

字符串

一个字符串,用于标识 API 中使用的自定义镜像。

source_format

字符串

URL 中引用的镜像的文件格式。

选项

  • "raw" ←(默认)

  • "qcow2"

state

字符串

自定义镜像的状态。

选项

  • "present" ←(默认)

  • "absent"

tags

字典

分配给自定义镜像的标签。

url

字符串

用于下载镜像的 URL。

user_data_handling

字符串

创建服务器时如何处理 user_data。目前有两个选项,“pass-through”和“extend-cloud-config”。

选项

  • "pass-through"

  • "extend-cloud-config"

uuid

字符串

自定义镜像导入的唯一标识符。必须存在名称或 UUID 才能更改现有镜像。

zones

列表 / 元素=字符串

指定自定义镜像将可用的区域(例如,lpg1rma1)。

备注

注意

  • 要导入新的自定义镜像,需要 urlname 选项。

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

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

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

示例

- name: Import custom image
  cloudscale_ch.cloud.custom_image:
    name: "My Custom Image"
    url: https://ubuntu.com/downloads/hirsute.img
    slug: my-custom-image
    user_data_handling: extend-cloud-config
    zones: lpg1
    tags:
      project: luna
    state: present
  register: my_custom_image

- name: Wait until import succeeded
  cloudscale_ch.cloud.custom_image:
    uuid: "{{ my_custom_image.uuid }}"
  retries: 15
  delay: 5
  register: image
  until: image.import_status == 'success'
  failed_when: image.import_status == 'failed'

- name: Import custom image and wait until import succeeded
  cloudscale_ch.cloud.custom_image:
    name: "My Custom Image"
    url: https://ubuntu.com/downloads/hirsute.img
    slug: my-custom-image
    user_data_handling: extend-cloud-config
    zones: lpg1
    tags:
      project: luna
    state: present
  retries: 15
  delay: 5
  register: image
  until: image.import_status == 'success'
  failed_when: image.import_status == 'failed'

- name: Import custom image with UEFI firmware type
  cloudscale_ch.cloud.custom_image:
    name: "My Custom UEFI Image"
    url: https://ubuntu.com/downloads/hirsute.img
    slug: my-custom-uefi-image
    user_data_handling: extend-cloud-config
    zones: lpg1
    firmware_type: uefi
    tags:
      project: luna
    state: present
  register: my_custom_image

- name: Update custom image
  cloudscale_ch.cloud.custom_image:
    name: "My Custom Image"
    slug: my-custom-image
    user_data_handling: extend-cloud-config
    tags:
      project: luna
    state: present

- name: Delete custom image
  cloudscale_ch.cloud.custom_image:
    uuid: '{{ my_custom_image.uuid }}'
    state: absent

- name: List all custom images
  uri:
    url: 'https://api.cloudscale.ch/v1/custom-images'
    headers:
      Authorization: 'Bearer {{ query("env", "CLOUDSCALE_API_TOKEN") }}'
    status_code: 200
  register: image_list
- name: Search the image list for all images with name 'My Custom Image'
  set_fact:
    my_custom_images: '{{ image_list.json | selectattr("name","search", "My Custom Image" ) }}'

返回值

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

描述

checksums

字典

自定义镜像的校验和,以键值对的形式表示。算法(例如 sha256)名称在键中,校验和在值中。使用的算法集将来可能会更改。

返回值: 成功

示例: {"md5": "5b3a1f21cde154cfb522b582f44f1a87", "sha256": "5b03bcbd00b687e08791694e47d235a487c294e58ca3b1af704120123aa3f4e6"}

created_at

字符串

资源的创建日期和时间。

返回值: 成功

示例: "2020-05-29T13:18:42.511407Z"

error_message

字符串

导入失败时的错误消息。

返回值: 成功

示例: "Expected HTTP 200, got HTTP 403"

href

字符串

用于获取此资源详细信息的 API URL。

返回值: 当 state == present 时成功

示例: "https://api.cloudscale.ch/v1/custom-imges/11111111-1864-4608-853a-0771b6885a3a"

import_status

字符串

显示导入的进度。值为“started”、“in_progress”、“success”或“failed”之一。

返回值: 成功

示例: "in_progress"

name

字符串

自定义镜像的人类可读名称。

返回值: 成功

示例: "alan"

slug

字符串

一个字符串,用于标识 API 中使用的自定义镜像。

返回值: 成功

示例: "foo"

state

字符串

自定义镜像的当前状态。

返回值: 成功

示例: "present"

tags

字典

与自定义镜像关联的标签。

返回值: 成功

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

user_data_handling

字符串

创建服务器时如何处理 user_data。目前有两个选项,“pass-through”和“extend-cloud-config”。

返回值: 成功

示例: "pass-through"

uuid

字符串

自定义镜像的唯一标识符。

返回值: 成功

示例: "11111111-1864-4608-853a-0771b6885a3a"

作者

  • Ciril Troxler (@ctx)

  • Gaudenz Steinlin (@gaudenz)