openstack.cloud.application_credential 模块 – 管理 OpenStack Identity (Keystone) 应用程序凭据

注意

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

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

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

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

概要

  • 创建或删除 OpenStack Identity (Keystone) 应用程序凭据。

  • 如果未设置 secret 参数,则会生成一个 secret 并将其返回

  • 在响应中。现有凭据无法修改,因此对现有凭据运行此模块

  • 将导致其被删除并重新创建。

  • 在生成 secret 时需要考虑这一点,因为 secret

  • 将在模块的每次运行时更改。

要求

以下是执行此模块的主机所需的条件。

  • python >= 3.6

  • openstacksdk >= 1.0.0

参数

参数

注释

access_rules

列表 / 元素=字典

访问规则列表,每个规则包含请求方法、路径和服务。

method

字符串 / 必需

HTTP 方法

path

字符串 / 必需

访问 URL 的路径部分

service

字符串 / 必需

服务端点的名称

api_timeout

整数

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

auth

字典

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

auth_type

字符串

要使用的 auth 插件的名称。如果云使用密码身份验证以外的其他方法,则应在此处指示插件的名称,并相应地更新 *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 的一部分一样。

description

字符串

应用程序凭据描述。

expires_at

字符串

设置应用程序凭据的过期日期,

格式为 YYYY-mm-ddTHH:MM:SS

(如果未提供,则应用程序凭据不会过期)。

interface

别名:endpoint_type

字符串

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

选项

  • "admin"

  • "internal"

  • "public" ← (默认)

name

字符串 / 必需

应用程序凭据的名称。

region_name

字符串

区域的名称。

roles

列表 / 元素=字典

要授权的角色(名称或 ID)。

domain_id

字符串

域 ID

id

字符串

角色的 ID

name

字符串

角色的名称

sdk_log_level

字符串

OpenStackSDK 的日志级别

选项

  • "INFO" ← (默认)

  • "DEBUG"

sdk_log_path

字符串

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

secret

字符串

用于身份验证的密钥

(如果未提供,则会生成一个)。

state

字符串

资源应该是存在还是不存在。

应用程序凭据是不可变的,因此使用现有的 present

凭据将导致凭据被删除并重新创建。

选项

  • "present" ← (默认)

  • "absent"

timeout

整数

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

默认值: 180

不受限制

布尔值

启用应用程序凭据以创建和删除其他应用程序

凭据和信任(这可能是危险的行为,默认情况下已

禁用)。

选项

  • false ← (默认)

  • true

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/ 找到。

示例

- name: Create application credential
  openstack.cloud.application_credential:
    cloud: mycloud
    description: demodescription
    name: democreds
    state: present

- name: Create application credential with expiration, access rules and roles
  openstack.cloud.application_credential:
    cloud: mycloud
    description: demodescription
    name: democreds
    access_rules:
    - service: "compute"
      path: "/v2.1/servers"
      method: "GET"
    expires_at: "2024-02-29T09:29:59"
    roles:
    - name: Member
    state: present

- name: Delete application credential
  openstack.cloud.application_credential:
    cloud: mycloud
    name: democreds
    state: absent

返回值

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

描述

application_credential

字典

描述项目的字典。

返回值:statepresent 时成功。

access_rules

列表 / 元素=字典

access_rules 对象列表

返回值:成功

示例: [{"id": "edecb6c791d541a3b458199858470d20", "method": "GET", "path": "/v2.1/servers", "service": "compute"}]

description

字符串

应用程序凭据用途的描述。

返回值:成功

示例: "App credential"

expires_at

字符串

如果指定了应用程序凭据的 UTC 到期时间。

返回值:成功

示例: "2024-02-29T09:29:59.000000"

id

字符串

应用程序凭据的 ID。

返回值:成功

示例: "2e73d1b4f0cb473f920bd54dfce3c26d"

name

字符串

应用程序凭据的名称。

返回值:成功

示例: "appcreds"

project_id

字符串

为其创建应用程序凭据并使用此应用程序凭据进行身份验证的请求将限定到的项目的 ID。

返回值:成功

示例: "4b633c451ac74233be3721a3635275e5"

roles

列表 / 元素=字典

此应用程序凭据与其项目关联的一个或多个角色列表。使用此应用程序凭据的令牌将具有相同的角色。

返回值:成功

示例: [{"name": "Member"}]

secret

字符串

用于身份验证的密钥(如果未提供,则返回生成的 value)。

返回值:成功

示例: "JxE7LajLY75NZgDH1hfu0N_6xS9hQ-Af40W3"

不受限制

布尔值

一个标志,指示应用程序凭据是否可用于创建或销毁其他应用程序凭据或信任。

返回值:成功

cloud

字典

使用用户名和密码替换为应用程序凭据的名称和密钥的当前云配置。这可以传递到其他任务的 cloud 参数,或写入 openstack 云配置文件。

返回值:statepresent 时成功。

示例: {"auth": {"application_credential_id": "3e73d1b4f0cb473f920bd54dfce3c26d", "application_credential_secret": "JxE7LajLY75NZgDH1hfu0N_6xS9hQ-Af40W3", "auth_url": "https://192.0.2.1/identity"}, "auth_type": "v3applicationcredential"}

作者

  • OpenStack Ansible SIG