google.cloud.gcp_compute_snapshot 模块 – 创建 GCP 快照

注意

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

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

要安装它,请使用: ansible-galaxy collection install google.cloud。您需要其他要求才能使用此模块,请参阅 要求 了解详细信息。

要在剧本中使用它,请指定: google.cloud.gcp_compute_snapshot

注意

由于违反了 Ansible 包含要求,google.cloud 集合将从 Ansible 12 中删除。该集合有未解决的健全性测试失败。有关更多信息,请参阅讨论主题

概要

  • 表示持久磁盘快照资源。

  • 使用快照备份持久磁盘中的数据。快照与公共映像和自定义映像不同,后者主要用于创建实例或配置实例模板。快照对于定期备份持久磁盘上的数据非常有用。即使在将快照附加到正在运行的实例时,也可以从持久磁盘创建快照。

  • 快照是增量的,因此,与定期创建磁盘的完整映像相比,您可以更快、成本更低地在持久磁盘上创建定期快照。

要求

执行此模块的主机需要满足以下要求。

  • python >= 2.6

  • requests >= 2.18.4

  • google-auth >= 1.3.0

参数

参数

注释

access_token

字符串

如果凭证类型为 accesstoken,则为 OAuth2 访问令牌。

auth_kind

字符串 / 必需

使用的凭证类型。

选项

  • "application"

  • "machineaccount"

  • "serviceaccount"

  • "accesstoken"

description

字符串

此资源的可选描述。

env_type

字符串

指定您在此模块中运行的 Ansible 环境。

除非您知道自己在做什么,否则不应设置此值。

这只会更改任何 API 请求的用户代理字符串。

labels

字典

要应用于此快照的标签。

name

字符串 / 必需

资源的名称;由客户端在创建资源时提供。名称必须为 1-63 个字符长,并符合 RFC1035。具体而言,名称的长度必须为 1-63 个字符,并匹配正则表达式 `[a-z]([-a-z0-9]*[a-z0-9])?`,这意味着第一个字符必须是小写字母,并且所有后续字符都必须是短划线、小写字母或数字,但最后一个字符不能是短划线。

project

字符串

要使用的 Google Cloud Platform 项目。

scopes

列表 / elements=string

要使用的作用域数组

service_account_contents

jsonarg

服务帐户 JSON 文件的内容,可以是字典形式,也可以是表示它的 JSON 字符串。

service_account_email

字符串

如果选择了 machineaccount 并且用户不希望使用默认电子邮件,则为可选的服务帐户电子邮件地址。

service_account_file

路径

如果选择 serviceaccount 作为类型,则为服务帐户 JSON 文件的路径。

snapshot_encryption_key

字典

快照的客户提供的加密密钥。如果源快照受到客户提供的加密密钥的保护,则为必需项。

kms_key_name

字符串

存储在 Google Cloud KMS 中的加密密钥的名称。

kms_key_service_account

字符串

用于给定 KMS 密钥的加密请求的服务帐户。

如果不存在,则使用 Compute Engine Service Agent 服务帐户。

raw_key

字符串

指定以 RFC 4648 base64 编码的 256 位客户提供的加密密钥,以加密或解密此资源。

source_disk

字典 / 必需

用于创建此快照的磁盘的引用。

此字段表示指向 GCP 中磁盘资源的链接。它可以通过两种方式指定。首先,您可以放置一个字典,其中键为 'name',值为资源的名称。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_disk 任务,然后将此 source_disk 字段设置为“{{ name-of-resource }}”

source_disk_encryption_key

字典

源快照的客户提供的加密密钥。如果源快照受到客户提供的加密密钥的保护,则为必需项。

kms_key_name

字符串

存储在 Google Cloud KMS 中的加密密钥的名称。

kms_key_service_account

字符串

用于给定 KMS 密钥的加密请求的服务帐户。

如果不存在,则使用 Compute Engine Service Agent 服务帐户。

raw_key

字符串

指定以 RFC 4648 base64 编码的 256 位客户提供的加密密钥,以加密或解密此资源。

state

字符串

给定的对象是否应存在于 GCP 中

选项

  • "present" ←(默认)

  • "absent"

storage_locations

列表 / elements=string

快照的 Cloud Storage 存储桶存储位置(区域或多区域)。

zone

字符串

对磁盘所在区域的引用。

注意

注意

  • API 参考: https://cloud.google.com/compute/docs/reference/rest/v1/snapshots

  • 官方文档: https://cloud.google.com/compute/docs/disks/create-snapshots

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_FILE 环境变量设置 service_account_file。

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_CONTENTS 环境变量设置 service_account_contents。

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_EMAIL 环境变量设置 service_account_email。

  • 对于身份验证,您可以使用 GCP_ACCESS_TOKEN 环境变量设置 access_token。

  • 对于身份验证,您可以使用 GCP_AUTH_KIND 环境变量设置 auth_kind。

  • 对于身份验证,您可以使用 GCP_SCOPES 环境变量设置 scopes。

  • 只有在未设置 playbook 值时,才会使用环境变量的值。

  • service_account_emailservice_account_file 选项是互斥的。

示例

- name: create a disk
  google.cloud.gcp_compute_disk:
    name: disk-snapshot
    zone: us-central1-a
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"
    state: present
  register: disk

- name: create a snapshot
  google.cloud.gcp_compute_snapshot:
    name: test_object
    source_disk: "{{ disk }}"
    zone: us-central1-a
    labels:
      my_label: value
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

返回值

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

描述

creationTimestamp

字符串

RFC3339 文本格式的创建时间戳。

返回: 成功

description

字符串

此资源的可选描述。

返回: 成功

diskSizeGb

整数

快照的大小,以 GB 为单位指定。

返回: 成功

id

整数

资源的唯一标识符。

返回: 成功

labelFingerprint

字符串

用于此资源乐观锁定的指纹。在更新期间内部使用。

返回: 成功

labels

字典

要应用于此快照的标签。

返回: 成功

licenses

列表 / elements=string

应用于此快照的一系列公开可见的许可。这可能是因为原始镜像附加了许可(例如 Windows 镜像)。 snapshotEncryptionKey 嵌套对象 使用客户提供的加密密钥加密快照。

返回: 成功

name

字符串

资源的名称;由客户端在创建资源时提供。名称必须为 1-63 个字符长,并符合 RFC1035。具体而言,名称的长度必须为 1-63 个字符,并匹配正则表达式 `[a-z]([-a-z0-9]*[a-z0-9])?`,这意味着第一个字符必须是小写字母,并且所有后续字符都必须是短划线、小写字母或数字,但最后一个字符不能是短划线。

返回: 成功

snapshotEncryptionKey

复杂

快照的客户提供的加密密钥。如果源快照受到客户提供的加密密钥的保护,则为必需项。

返回: 成功

kmsKeyName

字符串

存储在 Google Cloud KMS 中的加密密钥的名称。

返回: 成功

kmsKeyServiceAccount

字符串

用于给定 KMS 密钥的加密请求的服务帐户。

如果不存在,则使用 Compute Engine Service Agent 服务帐户。

返回: 成功

rawKey

字符串

指定以 RFC 4648 base64 编码的 256 位客户提供的加密密钥,以加密或解密此资源。

返回: 成功

sha256

字符串

用于保护此资源的客户提供的加密密钥的 RFC 4648 base64 编码的 SHA-256 哈希值。

返回: 成功

sourceDisk

字典

用于创建此快照的磁盘的引用。

返回: 成功

sourceDiskEncryptionKey

复杂

源快照的客户提供的加密密钥。如果源快照受到客户提供的加密密钥的保护,则为必需项。

返回: 成功

kmsKeyName

字符串

存储在 Google Cloud KMS 中的加密密钥的名称。

返回: 成功

kmsKeyServiceAccount

字符串

用于给定 KMS 密钥的加密请求的服务帐户。

如果不存在,则使用 Compute Engine Service Agent 服务帐户。

返回: 成功

rawKey

字符串

指定以 RFC 4648 base64 编码的 256 位客户提供的加密密钥,以加密或解密此资源。

返回: 成功

storageBytes

整数

快照使用的存储大小。 由于快照共享存储,因此该数字预计会随着快照的创建/删除而变化。

返回: 成功

storageLocations

列表 / elements=string

快照的 Cloud Storage 存储桶存储位置(区域或多区域)。

返回: 成功

zone

字符串

对磁盘所在区域的引用。

返回: 成功

作者

  • Google Inc. (@googlecloudplatform)