community.okd.openshift_auth 模块 – 验证需要显式登录步骤的 OpenShift 集群

注意

此模块是 community.okd 集合(版本 4.0.0)的一部分。

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

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

要在 playbook 中使用它,请指定:community.okd.openshift_auth

community.okd 0.2.0 中的新增功能

概要

  • 此模块处理向需要显式身份验证过程的 OpenShift 集群进行身份验证,这意味着客户端登录(获取身份验证令牌),使用该令牌执行 API 操作,然后注销(撤销令牌)。

  • 另一方面,用户名+密码身份验证的流行配置是使用 HTTP 基本身份验证的配置,该配置不涉及任何额外的登录/注销步骤(而是可以将登录凭据附加到执行的每个 API 调用),因此由 k8s 模块(和其他特定于资源的模块)通过使用 hostusernamepassword 参数直接处理。有关更多详细信息,请查阅您首选模块的文档。

别名:k8s_auth

要求

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

  • python >= 3.6

  • urllib3

  • requests

  • requests-oauthlib

参数

参数

注释

api_key

字符串

state 设置为absent时,这将指定要撤销的令牌。

ca_cert

别名:ssl_ca_cert

路径

用于验证与 API 服务器的连接的 CA 证书文件的路径。必须提供完整的证书链,以避免证书验证错误。

host

字符串 / 必需

提供用于访问 API 服务器的 URL。

password

字符串

提供用于向 API 服务器进行身份验证的密码。

state

字符串

如果设置为present,则使用 host 中指定的 URL 连接到 API 服务器,并尝试登录。

如果设置为absent,则尝试通过撤销 api_key 中指定的身份验证令牌来注销。

选项

  • "present" ←(默认)

  • "absent"

username

字符串

提供用于向 API 服务器进行身份验证的用户名。

validate_certs

别名:verify_ssl

布尔值

是否验证 API 服务器的 SSL 证书。

选项

  • false

  • true ←(默认)

示例

- name: Example Playbook
  hosts: localhost
  module_defaults:
    group/community.okd.okd:
      host: https://k8s.example.com/
      ca_cert: ca.pem
  tasks:
    - name: Authenticate to OpenShift cluster and gell a list of all pods from any namespace
      block:
        # It's good practice to store login credentials in a secure vault and not
        # directly in playbooks.
        - name: Include 'openshift_passwords.yml'
          ansible.builtin.include_vars: openshift_passwords.yml

        - name: Log in (obtain access token)
          community.okd.openshift_auth:
            username: admin
            password: "{{ openshift_admin_password }}"
          register: openshift_auth_results

        # Previous task provides the token/api_key, while all other parameters
        # are taken from module_defaults
        - name: Get a list of all pods from any namespace
          kubernetes.core.k8s_info:
            api_key: "{{ openshift_auth_results.openshift_auth.api_key }}"
            kind: Pod
          register: pod_list

      always:
        - name: If login succeeded, try to log out (revoke access token)
          when: openshift_auth_results.openshift_auth.api_key is defined
          community.okd.openshift_auth:
            state: absent
            api_key: "{{ openshift_auth_results.openshift_auth.api_key }}"

返回值

常见的返回值记录在这里,以下是此模块独有的字段

描述

k8s_auth

复合

与返回的 openshift_auth 相同。仅为向后兼容而保留

已返回:成功

api_key

字符串

身份验证令牌。

已返回:成功

ca_cert

字符串

用于验证与 API 服务器的连接的 CA 证书文件的路径。

已返回:成功

host

字符串

用于访问 API 服务器的 URL。

已返回:成功

username

字符串

用于向 API 服务器进行身份验证的用户名。

已返回:成功

validate_certs

布尔值

是否验证 API 服务器的 SSL 证书。

已返回:成功

openshift_auth

复合

OpenShift 身份验证信息。

已返回:成功

api_key

字符串

身份验证令牌。

已返回:成功

ca_cert

字符串

用于验证与 API 服务器的连接的 CA 证书文件的路径。

已返回:成功

host

字符串

用于访问 API 服务器的 URL。

已返回:成功

username

字符串

用于向 API 服务器进行身份验证的用户名。

已返回:成功

validate_certs

布尔值

是否验证 API 服务器的 SSL 证书。

已返回:成功

作者

  • KubeVirt 团队 (@kubevirt)

  • Fabian von Feilitzsch (@fabianvf)