第 23 章 自定义凭证类型
作为系统管理员,您可以使用 YAML 或类 JSON 的定义以标准格式定义自定义凭证类型。您可以定义一个与现有凭证类型类似的自定义凭证类型。例如,自定义凭证类型可将第三方 Web 服务的 API 令牌注入到 playbook 或自定义清单脚本的环境变量中。
自定义凭证支持以下注入身份验证信息的方法:
- 环境变量
- Ansible 额外变量
-
基于文件的模板,这意味着生成包含凭证值的
.ini
或.conf
文件
您可以将一个 SSH 和多个云凭证附加到作业模板。每个云凭证都必须是不同的类型。只允许每种凭证类型中的一个凭证。Vault 凭证和机器凭证是单独的实体。
-
在创建新凭证类型时,您必须避免在
extra_vars
、env
和 file 命名空间中发生冲突。 -
环境变量或额外变量名称不能以
ANSIBLE_
开头,因为它们是保留的。 -
您必须具有系统管理员(超级用户)权限才能创建和编辑凭证类型(
CredentialType
),并能够查看CredentialType.injection
字段。
23.1. 从集合中获取内容
"受管"凭证类型 kind=galaxy
代表在运行项目更新时,在 requirements.yml
中定义的集合的内容源。内容源示例包括 galaxy.ansible.com、console.redhat.com 或内部自动化中心。这个新凭证类型代表了在项目更新运行 ansible-galaxy 集合安装
时构建环境变量所需的 URL 和(可选)身份验证详情,如 Ansible 文档 配置 ansible-galaxy 客户端 中所述。它有字段直接映射到公开给 Ansible Galaxy CLI 的配置选项,如每个服务器。
API 中的端点反映了在机构级别这些凭证的排序列表:
/api/v2/organizations/N/galaxy_credentials/
当自动化控制器安装迁移现有的面向 Galaxy 的设置值时,会创建升级后正确的凭证并附加到每个机构。升级到最新版本后,在升级前存在的每个机构现在都有与其关联的一个或多个 "Galaxy" 凭证的列表。
另外,这些设置在升级后无法从 /api/v2/settings/jobs/
端点可见(或编辑)。
即使 galaxy.ansible.com
不是机构列表中的第一个凭证,自动化控制器也会继续直接从公共 Galaxy 获取角色。全局 Galaxy 设置不再在作业级别配置,而是在用户界面中的机构级别配置。
机构的 Create organization 和 Edit organization 窗口具有一个可选的 Galaxy credentials lookup 字段,用于 kind=galaxy
的凭证。
务必要将这些凭证的顺序指定为同步和查找内容的优先级。如需更多信息,请参阅创建机构。
有关如何使用集合设置项目的更多信息,请参阅使用带有自动化中心 的集合。