Translated message

A translation of this page exists in English.

Ansible 认证的内容常见问题解答

已更新 -

以下是与 Ansible Automation Platform 认证计划相关的常见问题解答。如果您对以下项目有任何疑问,请发送电子邮件至 ansiblepartners@redhat.com。

为什么要认证 Ansible 集合?

原因如下:

  1. Ansible 认证计划(Ansible Certification Program)是红帽和相关的生态系统合作伙伴之间共享的对 Ansible 集合的支持声明。最终用户可以在红帽创建一个支持问题单(请求信息、提出问题等),红帽及提供相关内容的合作伙伴 ISV 会合作解决相关的问题。

  2. 红帽为认证合作伙伴提供了扩大市场、增加服务需求以及协作销售的优势。

  3. Ansible 认证集合通过 Ansible Automation Hub 发布(需要相关的订阅)。认证合作伙伴通过 Ansible Automation Hub 为最终用户提供相关的内容。用户在自己的环境中使用这些经过认证的自动化内容时,可以明确它们的支持生命周期。

有关认证解决方案的详情,请参考 https://www.ansible.com/partners

如何获得集合认证?

如需 Ansible 认证策略指南和 Ansible 认证工作流指南,请参阅我们的软件认证页

Ansible Galaxy 和 Ansible Automation Hub 之间有什么区别?

在 Ansible Galaxy 中发布的集合是由 Ansible 社区发布的最新内容,它们并没有相关的联合支持声明。Ansible Galaxy 是推荐的 Ansible 社区内容的前端"目录"。

在 Automation Hub 中发布的集合可供红帽及合作伙伴的客户使用。客户需要一个 Ansible 订阅才能访问和下载 Automation Hub 上提供的认证集合。一个认证的集合意味着,红帽与相关的合作伙伴建立了战略合作伙伴关系,并准备好对共同的客户提供服务。另外,这些内容还经过额外的测试和验证。

如何在 Galaxy 中请求一个命名空间?

在通过 Ansible Galaxy GitHub Issue 请求一个命名空间后,请发送电子邮件到 ansiblepartners@redhat.com。在进行此类请求前,您(及其他管理员)需要至少登录到 Galaxy 一次。在用户被添加为命名空间的管理员(admin)后,此用户可以为命名空间添加其他管理员。

Galaxy 命名空间的命名是否有任何限制?

集合命名空间必须遵循 python 模块名称惯例。这意味着,集合的名称应简短且只能使用小写字符。为了提高可读性,集合名称中也可以使用下划线。

对集合命名是否有命名建议?

一个常规的建议是,使用带有 company_name.product 格式的集合名称。这样,多个产品可以在公司命名空间中有不同的集合。

如何在 Ansible Automation Hub 上获取命名空间?

发送电子邮件到 Ansible 合作伙伴工程团队(ansiblepartners@redhat.com)。我们建议在 Ansible Galaxy 和 Ansible Automation Hub 上使用相同的命名空间。

Galaxy 是否托管我的集合的源代码?

不托管,集合源代码需要在 Ansible Galaxy 之外的公共源控制工具(如 GitHub)中进行管理。Ansible Galaxy 仅包含用于分发的集合工件。源代码需要在集合的 galaxy.yml 文件中链接,该文件会在 Galaxy 的集合页中生成一个链接。

红帽是否对从 Ansible Galaxy 下载并安装的内容提供官方支持?

不提供支持。对从 Galaxy 下载的集合的支持 100% 由社区提供。此类集合的用户和贡献者需要直接联系集合开发人员。

认证集合的共同支持协议是如何工作的?

对于认证集合出现的问题,用户可以向红帽支持团队提出支持请求,红帽支持团队会处理用户提出的支持请求。红帽支持团队首先确定相关的问题是否存在于 Ansible 内还是与 Ansible 的使用相关,并检查问题是否与认证集合有关。如果它是一个特定于集合的问题,支持团队将通过 TSANet 将问题传送到相关认证集合的所有者。详情请参阅 TSANet 和红帽支持(请访问这里)。

如何将现有模块/插件迁移到集合?

本指南概述了集合开发。要测试集合是否可以正常工作,请参阅使用指南(请访问这里)。

我们是否可以创建并认证仅包含 Ansible 角色(Roles)的集合?

可以创建并认证仅包含角色的集合。

一个认证的集合是否可以依赖于一个社区集合?

不可以。经过认证的集合只能依赖于其他经过认证的内容。认证的集合不能依赖于社区集合,如 community.general。

一个认证的集合是否有许可证要求?

集合可以使用任何 OSI 批准的许可证。为了避免与没有使用 GPLv3 许可证相关的 ansible-test 健全性(sanity)错误,您可以在健全性忽略(ignore)文件中忽略这些测试。认证并不需要 GPLv3-or-later。

对于一个认证的集合,更新和产品支持的要求是什么?

一个认证的集合必须最少在与被支持的 Ansible Automation Platform 版本关联的两个 Ansible 版本中经过测试并被支持。有关当前支持的版本的信息,请参阅 Red Hat Ansible Automation Platform 生命周期。如果认证的集合不符合此要求,且没有及时进行更新,则可能会被弃用并从认证目录中删除。

验证的内容(Validated Content)和认证的内容(Certified Content)之间有什么区别?

Ansible 验证的内容集合包含了预构建的 YAML 内容(如 playbook 或角色),以解决最常见的自动化用例。它包括的内容集通常不是针对于特定平台的,并专注于网络、安全等功能。认证的内容通常是针对一个特定的平台或产品而构建的,它除了包括 YAML 内容之外,还可能包括模块和/或插件形式的实际代码。

与认证的内容不同,验证的内容不需要满足对支持的要求。这是因为验证的内容侧重于自定义,它的设计宗旨是用户可以根据具体需要对内容进行修改。如果用户对验证的内容有任何问题,需要直接访问相关集合的软代码仓库,而不是通过 TSANet 进行。

在认证测试管道中对测试/linter 的要求是什么?

除非另外明确指定,每个认证版本都必须满足以下所有要求、规则和测试。这些要求可能会根据 Ansible 合作伙伴工程团队的通知而改变。

组件名称 需要的版本 文档
galaxy-importer latest galaxy-importer README
ansible-test sanity ansible-core 2.16 Sanity 文档
ansible-lint 6.22.1 ansible-lint 文档
EDA 测试 (ruff, darglint, pylint) latest EDA 测试文档和模板

Ansible 认证工作流指南中概述了有关文档和策略的额外要求(网址

对于认证的集合,是否应针对 Ansible 开发分支进行测试?

我们建议所有合作伙伴,在 CI 测试中除了包括支持的 Ansible 版本外,还应包括 Ansible devel 分支。对 devel 分支的测试有助于帮助了解即将发布的 Ansible 版本及其更改可能会带来的影响。

如何在我的集合中运行健全性测试(sanity test)?

Ansible Sanity 测试包括了用于执行静态代码分析的脚本和工具。这些测试的主要目的是,强制执行 Ansible 编码标准和要求。Ansible Collections 必须位于一个具体的路径中,如下所示:
{...}/ansible_collections/{namespace}/{collection}/

您必须确保您的集合位于这个特定的路径中:一个一个名为 ansible_collections 的空目录,然后是命名空间的目录,最后是集合本身的目录。

Comments