Ansible 认证的内容常见问题解答
以下是与 Ansible Automation Platform 认证计划相关的常见问题解答。如果您对以下项目有任何疑问,请发送电子邮件至 ansiblepartners@redhat.com。
为什么要认证 Ansible 集合?
原因如下:
-
Ansible 认证计划(Ansible Certification Program)是红帽和相关的生态系统合作伙伴之间共享的对 Ansible 集合的支持声明。最终用户可以在红帽创建一个支持问题单(请求信息、提出问题等),红帽及提供相关内容的合作伙伴 ISV 会合作解决相关的问题。
-
红帽为认证合作伙伴提供了扩大市场、增加服务需求以及协作销售的优势。
-
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