openstack.cloud.server_metadata 模块 – 从 OpenStack 中添加/更新/删除计算实例的元数据

注意

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

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

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

要在 playbook 中使用它,请指定:openstack.cloud.server_metadata

概要

  • 添加、更新或删除 OpenStack 中计算实例的元数据。

要求

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

  • python >= 3.6

  • openstacksdk >= 1.0.0

参数

参数

注释

api_timeout

整数

套接字层在 API 调用超时之前应等待多长时间。如果省略此项,则不会将任何内容传递给 requests 库。

auth

字典

包含云的认证插件策略所需的认证信息的字典。对于默认的 *password* 插件,这将包含 *auth_url*、*username*、*password*、*project_name* 和有关域的任何信息(例如,*user_domain_name* 或 *project_domain_name*),如果云支持它们的话。对于其他插件,此参数需要包含该认证插件所需的任何参数。如果提供了命名云或存在 OpenStack OS_* 环境变量,则不需要此参数。

auth_type

字符串

要使用的认证插件的名称。如果云使用除密码认证之外的其他认证方式,则应在此处指示插件的名称,并相应地更新 *auth* 参数的内容。

ca_cert

别名:cacert

字符串

CA 证书包的路径,可用作验证 SSL API 请求的一部分。

client_cert

别名:cert

字符串

客户端证书的路径,用作 SSL 事务的一部分。

client_key

别名:key

字符串

客户端密钥的路径,用作 SSL 事务的一部分。

cloud

任意

要操作的命名云或云配置。如果 *cloud* 是字符串,则它引用在 OpenStack clouds.yaml 文件中定义的命名云配置。为 *auth* 和 *auth_type* 提供默认值。如果提供了 *auth* 或存在 OpenStack OS_* 环境变量,则不需要此参数。如果 *cloud* 是字典,则它包含完整的云配置,就像 clouds.yaml 的一部分一样。

interface

别名:endpoint_type

字符串

从服务目录中获取的端点 URL 类型。

选项

  • "admin"

  • "internal"

  • "public" ← (默认)

metadata

别名:meta

字典 / 必需

应作为元数据提供给实例的键值对列表,或包含键值对列表的字符串。例如:meta: “key1=value1,key2=value2”

请注意,当 *state* 为 true 时,服务器上已存在的元数据不会被清除。

name

别名:server

字符串 / 必需

要更新元数据的实例的名称

region_name

字符串

区域名称。

sdk_log_level

字符串

OpenStackSDK 的日志级别

选项

  • "INFO" ← (默认)

  • "DEBUG"

sdk_log_path

字符串

OpenStackSDK 日志文件的路径。如果为空,则不写入日志

state

字符串

资源应存在还是不存在。

选项

  • "present" ← (默认)

  • "absent"

timeout

整数

Ansible 应等待请求资源多长时间。

默认值: 180

validate_certs

别名:verify

布尔值

是否应验证 SSL API 请求。

在 Ansible 2.3 之前,此默认值为 true

选项

  • false

  • true

wait

布尔值

Ansible 是否应等到请求的资源完成。

选项

  • false

  • true ← (默认)

备注

注意

  • 可以使用标准的 OpenStack 环境变量(例如 OS_USERNAME),而不是提供显式值。

  • 认证信息由 openstacksdk 驱动,这意味着值可以来自 /etc/ansible/openstack.yaml、/etc/openstack/clouds.yaml 或 ~/.config/openstack/clouds.yaml 中的 yaml 配置文件,然后来自标准环境变量,最后来自 playbook 中的显式参数。更多信息可在 https://docs.openstack.org/openstacksdk/ 找到

示例

# Creates or updates hostname=test1 as metadata of the server instance vm1
# Note that existing keys will not be cleared
- name: add metadata to instance
  openstack.cloud.server_metadata:
      state: present
      cloud: "{{ cloud }}"
      name: vm1
      metadata:
          hostname: test1
          group: group1

# Removes the keys under meta from the instance named vm1
- name: delete metadata from instance
  openstack.cloud.server_metadata:
        state: absent
        cloud: "{{ cloud }}"
        name: vm1
        meta:
            hostname:
            group:
            public_keys:

返回值

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

描述

server

字典

描述已更新服务器的字典。

返回:当 *state* 为“present”时成功。

access_ipv4

字符串

应用于访问此服务器的 IPv4 地址。可能由提供商自动设置。

返回:成功

access_ipv6

字符串

应用于访问此服务器的 IPv6 地址。可能由提供商自动设置。

返回:成功

addresses

字典

可以通过此服务器访问的地址字典。该字典包含诸如“private”和“public”之类的键,每个键都包含该类型地址的字典列表。地址包含在一个字典中,其中包含键“addr”和“version”,根据 IP 地址的协议,值为 4 或 6。

返回:成功

admin_password

字符串

首次创建服务器时,会提供管理员密码。

返回:成功

已连接卷

列表 / 元素=字符串

已连接卷的列表。列表中的每个项目至少包含一个“id”键来标识特定的卷。

返回:成功

可用区

字符串

此服务器所属的可用区的名称。

返回:成功

块设备映射

字符串

启用对实例的块设备映射的细粒度控制。这通常用于从卷启动服务器。

返回:成功

计算主机

字符串

此实例运行所在的计算主机的名称。仅对管理员用户显示在响应中。

返回:成功

配置驱动器

字符串

指示此服务器是否使用了配置驱动器。

返回:成功

创建时间

字符串

服务器创建的时间戳。

返回:成功

描述

字符串

服务器的描述。在 microversion 2.19 之前,此项设置为服务器名称。

返回:成功

磁盘配置

字符串

磁盘配置。AUTO 或 MANUAL。

返回:成功

规格

字典

服务器返回的规格属性。

返回:成功

规格ID

字符串

规格的引用,作为 ID 或完整 URL,用于此服务器。

返回:成功

是否具有配置驱动器

字符串

指示配置驱动器是否启用元数据注入。并非所有云提供商都启用此功能。

返回:成功

主机ID

字符串

表示此服务器主机的 ID。

返回:成功

主机状态

字符串

主机状态。

返回:成功

主机名

字符串

服务器启动时设置在实例上的主机名。默认情况下,仅对管理员用户显示在响应中。

返回:成功

虚拟机管理程序主机名

字符串

虚拟机管理程序主机名。仅对管理员用户显示在响应中。

返回:成功

ID

字符串

服务器的 ID。

返回:成功

镜像

字典

服务器返回的镜像属性。

返回:成功

镜像ID

字符串

镜像的引用,作为 ID 或完整 URL,用于此服务器。

返回:成功

实例名称

字符串

实例名称。计算 API 从实例名称模板生成实例名称。仅对管理员用户显示在响应中。

返回:成功

是否锁定

布尔值

服务器的锁定状态。

返回:成功

内核ID

字符串

使用 AMI 时内核镜像的 UUID。如果不是,则为 null。默认情况下,仅对管理员用户显示在响应中。

返回:成功

密钥名

字符串

关联密钥对的名称。

返回:成功

启动索引

整数

当服务器通过多个创建操作启动时,这是服务器启动的顺序。默认情况下,仅对管理员用户显示在响应中。

返回:成功

启动时间

字符串

服务器启动的时间戳。

返回:成功

字符串

包含与此服务器相关的链接的字典列表。

返回:成功

最大数量

字符串

要创建的服务器的最大数量。

返回:成功

元数据

字典

标签字符串列表。

返回:成功

最小数量

字符串

要创建的服务器的最小数量。

返回:成功

名称

字符串

服务器的名称。

返回:成功

网络

字符串

网络对象。当租户定义了多个网络时,这是必需的参数。如果未指定 networks 参数,则服务器将连接到为当前租户创建的唯一网络。

返回:成功

电源状态

字符串

此服务器的电源状态。

返回:成功

进度

整数

在服务器构建期间,此值表示完成的百分比。完成后,将为 100。

返回:成功

项目ID

字符串

此服务器关联的项目的 ID。

返回:成功

RAM 磁盘 ID

字符串

使用 AMI 时 RAM 磁盘镜像的 UUID。如果不是,则为 null。默认情况下,仅对管理员用户显示在响应中。

返回:成功

预留 ID

字符串

服务器的预留 ID。这是一个 ID,可用于跟踪使用多个创建操作创建的服务器组,这些服务器组都具有相同的 reservation_id。默认情况下,仅对管理员用户显示在响应中。

返回:成功

根设备名称

字符串

实例的根设备名称。默认情况下,仅对管理员用户显示在响应中。

返回:成功

调度程序提示

字典

要发送到调度程序的数据字典。

返回:成功

安全组

列表 / 元素=字典

适用的安全组列表。每个组都包含以下键:描述、名称、ID 和规则。

返回:成功

服务器组

列表 / 元素=字符串

服务器所属的服务器组的 UUID。目前最多只能包含一个条目。

返回:成功

状态

字符串

此服务器所处的状态。有效值包括“ACTIVE”、“BUILDING”、“DELETED”、“ERROR”、“HARD_REBOOT”、“PASSWORD”、“PAUSED”、“REBOOT”、“REBUILD”、“RESCUED”、“RESIZED”、“REVERT_RESIZE”、“SHUTOFF”、“SOFT_DELETED”、“STOPPED”、“SUSPENDED”、“UNKNOWN”或“VERIFY_RESIZE”。

返回:成功

标签

列表 / 元素=字符串

关联标签的列表。

返回:成功

任务状态

字符串

此服务器的任务状态。

返回:成功

终止时间

字符串

服务器终止的时间戳(如果已终止)。

返回:成功

受信任的镜像证书

列表 / 元素=字符串

在镜像签名验证期间用于验证签名证书的受信任证书 ID 列表。

返回:成功

更新时间

字符串

此服务器上次更新的时间戳。

返回:成功

用户数据

字符串

启动时要使用的配置信息或脚本。Base64 编码。

返回:成功

用户ID

字符串

此服务器所有者的 ID。

返回:成功

虚拟机状态

字符串

此服务器的虚拟机状态。

返回:成功

列表 / 元素=字符串

与已连接卷相同。

返回:成功

作者

  • OpenStack Ansible SIG