ovirt.ovirt.ovirt_auth 模块 – 管理 oVirt/RHV 身份验证的模块

注意

此模块是 ovirt.ovirt 集合 (版本 3.2.0) 的一部分。

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

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

要在 playbook 中使用它,请指定: ovirt.ovirt.ovirt_auth

ovirt.ovirt 1.0.0 中的新增功能

概要

  • 此模块对 oVirt/RHV 引擎进行身份验证并创建 SSO 令牌,此令牌应在所有其他 oVirt/RHV 模块中使用,因此所有模块都不需要执行登录和注销操作。此模块返回一个名为 *ovirt_auth* 的 Ansible 事实。每个模块都可以使用此事实作为 auth 参数来执行身份验证。

要求

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

  • python >= 2.7

  • ovirt-engine-sdk-python >= 4.4.0

参数

参数

注释

ca_file

路径

包含受信任 CA 证书的 PEM 文件。服务器提供的证书将使用这些 CA 证书进行验证。如果未设置 ca_file 参数,则使用系统范围的 CA 证书存储。默认值由 *OVIRT_CAFILE* 环境变量设置。

compress

布尔值

一个布尔标志,指示 SDK 是否应请求服务器发送压缩的响应。默认为 *True*。请注意,这是一个服务器提示,即使此参数设置为 *True*,它也可能返回未压缩的数据。

选项

  • false

  • true ← (默认)

headers

字典

要添加到每个 API 调用的 HTTP 标头的字典。

hostname

字符串

包含服务器主机名的字符串。例如:*server.example.com*。默认值由 *OVIRT_HOSTNAME* 环境变量设置。

需要 urlhostname

insecure

布尔值

一个布尔标志,指示是否应检查服务器 TLS 证书和主机名。

选项

  • false

  • true

kerberos

布尔值

一个布尔标志,指示是否应使用 Kerberos 身份验证而不是默认的基本身份验证。

选项

  • false ← (默认)

  • true

ovirt_auth

字典

使用 state absent 的 ovirt_auth 的先前运行

关闭与引擎的连接。

password

字符串

用户的密码。默认值由 *OVIRT_PASSWORD* 环境变量设置。

state

字符串

指定是否应创建或撤销令牌。

选项

  • "present" ← (默认)

  • "absent"

timeout

整数

等待响应的最大总时间(以秒为单位)。值为零(默认为)表示无限期等待。如果在收到响应之前超时过期,则会引发异常。

token

字符串

要使用的 SSO 令牌,而不是使用用户名/密码登录。默认值由 *OVIRT_TOKEN* 环境变量设置。

url

字符串

包含服务器 API URL 的字符串。例如:*https://server.example.com/ovirt-engine/api*。默认值由 *OVIRT_URL* 环境变量设置。

需要 urlhostname

username

字符串

用户名。例如:*admin@internal* 默认值由 *OVIRT_USERNAME* 环境变量设置。

注释

注意

  • 每次使用 ovirt_auth 模块获取票证时,都需要在不再需要时撤销票证,否则票证将在过期时被引擎撤销。有关如何实现此目的的示例,请查看“示例”部分。

  • 为了使用此模块,您必须安装 oVirt/RHV Python SDK。为了确保它以正确的版本安装,您可以创建以下任务:*pip: name=ovirt-engine-sdk-python version=4.4.0*

  • 请注意,在 oVirt/RHV 4.1 中,如果您想使用非管理员用户,则必须在引擎中启用 *ENGINE_API_FILTER_BY_DEFAULT* 变量。在 oVirt/RHV 4.2 及更高版本中,默认情况下启用此变量。

示例

  - block:
       # Create a vault with `ovirt_password` variable which store your
       # oVirt/RHV user's password, and include that yaml file with variable:
       - ansible.builtin.include_vars: ovirt_password.yml

       - name: Obtain SSO token with using username/password credentials
         ovirt.ovirt.ovirt_auth:
           url: https://ovirt.example.com/ovirt-engine/api
           username: admin@internal
           ca_file: ca.pem
           password: "{{ ovirt_password }}"

       # Previous task generated I(ovirt_auth) fact, which you can later use
       # in different modules as follows:
       - ovirt.ovirt.ovirt_vm:
           auth: "{{ ovirt_auth }}"
           state: absent
           name: myvm

    always:
      - name: Always revoke the SSO token
        ovirt.ovirt.ovirt_auth:
          state: absent
          ovirt_auth: "{{ ovirt_auth }}"

# When user will set following environment variables:
#   OVIRT_URL = https://fqdn/ovirt-engine/api
#   OVIRT_USERNAME = admin@internal
#   OVIRT_PASSWORD = the_password
# User can login the oVirt using environment variable instead of variables
# in yaml file.
# This is mainly useful when using Ansible Tower or AWX, as it will work
# for Red Hat Virtualization credentials type.
  - name: Obtain SSO token
    ovirt_auth:
      state: present

返回值

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

描述

ovirt_auth

复杂类型

身份验证事实,需要执行对 oVirt/RHV 的身份验证。

返回:成功

ca_file

字符串

用于验证 SSL/TLS 连接的 CA 文件。

返回:成功

示例: "ca.pem"

compress

布尔值

指示是否使用压缩连接的标志。

返回:成功

示例: true

headers

字典

要添加到每个 API 调用的 HTTP 标头的字典。

返回:成功

insecure

布尔值

指示是否使用不安全连接的标志。

返回:成功

示例: false

kerberos

布尔值

指示是否使用 kerberos 进行身份验证的标志。

返回:成功

示例: false

timeout

整数

等待响应的秒数。

返回:成功

示例: 0

token

字符串

用于连接到 oVirt/RHV 引擎的 SSO 令牌。

返回:成功

示例: "kdfVWp9ZgeewBXV-iq3Js1-xQJZPSEQ334FLb3eksoEPRaab07DhZ8ED8ghz9lJd-MQ2GqtRIeqhvhCkrUWQPw"

url

字符串

oVirt/RHV 引擎 API 端点的 URL。

返回:成功

示例: "https://ovirt.example.com/ovirt-engine/api"

作者

  • Ondra Machacek (@machacekondra)