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

字典

包含云的身份验证插件策略所需的身份验证信息的字典。对于默认的 password 插件,这将包含 auth_urlusernamepasswordproject_name 以及有关域的任何信息(例如,如果云支持,则包含 user_domain_nameproject_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 文件中定义的命名云配置。提供 authauth_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" ←(默认)

  • "absent"

timeout

整数

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

默认: 180

unrestricted

布尔值

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

凭据和信任(这可能是一种危险的行为,并且

默认情况下禁用)。

选项

  • false ←(默认)

  • true

validate_certs

别名:verify

布尔值

是否应验证 SSL API 请求。

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

选项

  • false

  • true

等待

布尔值

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

选项

  • false

  • true ← (默认)

注释

注意

  • 可以使用标准的 OpenStack 环境变量(如 OS_USERNAME)来替代提供显式的值。

  • 认证信息由 openstacksdk 驱动,这意味着值可以来自 /etc/ansible/openstack.yaml、/etc/openstack/clouds.yaml 或 ~/.config/openstack/clouds.yaml 中的 YAML 配置文件,然后来自标准环境变量,最后来自剧本中的显式参数。更多信息请访问 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

字符串

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

返回: 成功

示例: "JxE7LajLY75NZgDH1hfu0N_6xS9hQ-Af40W3"

unrestricted

布尔值

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

返回: 成功

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