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’ 的字典中,其中 version 根据 IP 地址的协议为 4 或 6。

返回:成功

admin_password

字符串

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

返回:成功

attached_volumes

列表 / 元素=字符串

附加卷的列表。列表中的每个项目至少包含一个 ‘id’ 键来标识特定卷。

返回:成功

availability_zone

字符串

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

返回:成功

block_device_mapping

字符串

允许对实例的块设备映射进行精细控制。这通常用于从卷启动服务器。

返回:成功

compute_host

字符串

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

返回:成功

config_drive

字符串

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

返回:成功

created_at

字符串

服务器创建的时间戳。

返回:成功

description

字符串

服务器的描述。在微版本 2.19 之前,这被设置为服务器名称。

返回:成功

disk_config

字符串

磁盘配置。可以是 AUTO 或 MANUAL。

返回:成功

flavor

字典

从服务器返回的风味属性。

返回:成功

flavor_id

字符串

要用于此服务器的风味的参考,可以是 ID 或完整 URL。

返回:成功

has_config_drive

字符串

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

返回:成功

host_id

字符串

表示此服务器主机的 ID。

返回:成功

host_status

字符串

主机状态。

返回:成功

hostname

字符串

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

返回:成功

hypervisor_hostname

字符串

虚拟机监控程序主机名。仅在管理用户的响应中显示。

返回:成功

id

字符串

服务器的 ID。

返回:成功

image

字典

从服务器返回的镜像属性。

返回:成功

image_id

字符串

要用于此服务器的镜像的参考,可以是 ID 或完整 URL。

返回:成功

instance_name

字符串

实例名称。Compute API 从实例名称模板生成实例名称。仅在管理用户的响应中显示。

返回:成功

is_locked

布尔值

服务器的锁定状态。

返回:成功

kernel_id

字符串

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

返回:成功

key_name

字符串

关联的密钥对的名称。

返回:成功

launch_index

整数

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

返回:成功

launched_at

字符串

服务器启动的时间戳。

返回:成功

字符串

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

返回:成功

max_count

字符串

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

返回:成功

metadata

字典

标签字符串列表。

返回:成功

min_count

字符串

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

返回:成功

name

字符串

服务器的名称。

返回:成功

networks

字符串

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

返回:成功

power_state

字符串

此服务器的电源状态。

返回:成功

progress

整数

当服务器正在构建时,此值表示完成百分比。完成后,它将为 100。

返回:成功

project_id

字符串

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

返回:成功

ramdisk_id

字符串

使用 AMI 时 ramdisk 镜像的 UUID。如果未使用,则为 null。默认情况下,它仅在管理用户的响应中显示。

返回:成功

reservation_id

字符串

服务器的预留 ID。此 ID 可用于跟踪通过多次创建创建的服务器组,这些服务器都将具有相同的 reservation_id。默认情况下,它仅在管理用户的响应中显示。

返回:成功

root_device_name

字符串

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

返回:成功

scheduler_hints

字典

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

返回:成功

security_groups

列表 / 元素=字典

适用的安全组列表。每个组都包含以下键:description、name、id 和 rules。

返回:成功

server_groups

列表 / 元素=字符串

服务器所属的服务器组的 UUID。目前,它最多可以包含一个条目。

返回:成功

status

字符串

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

返回:成功

tags

列表 / 元素=字符串

关联的标签列表。

返回:成功

task_state

字符串

此服务器的任务状态。

返回:成功

terminated_at

字符串

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

返回:成功

trusted_image_certificates

列表 / 元素=字符串

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

返回:成功

updated_at

字符串

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

返回:成功

user_data

字符串

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

返回:成功

user_id

字符串

此服务器的所有者的 ID。

返回:成功

vm_state

字符串

此服务器的 VM 状态。

返回:成功

volumes

列表 / 元素=字符串

与 attached_volumes 相同。

返回:成功

作者

  • OpenStack Ansible SIG