Ansible 内容集合入门
Ansible 内容集合入门
随着 Red Hat Ansible Automation Platform 的发布,Ansible 内容集合现在得到了完全支持。Ansible 内容集合(或简称集合)代表了自动化分发、维护和使用的全新标准。通过组合多种类型的 Ansible 内容(剧本、角色、模块和插件),极大地提高了灵活性和可扩展性。
谁将受益?
每个人!
传统上,模块创建者必须等待他们的模块被标记为包含在即将发布的 Ansible 版本中,或者必须将其添加到角色中,这使得使用和管理变得更加困难。通过将模块与相关的角色和文档一起打包在 Ansible 内容集合中,并消除进入障碍,创建者现在能够以满足其创作需求的速度快速行动。对于公共云提供商而言,这意味着可以推出现有服务的全新功能或全新的服务,以及自动化新功能的能力。
对于自动化使用者而言,这意味着可以持续获得新的内容以供使用。以这种方式管理内容也变得更容易,因为模块、插件、角色和文档都打包在一起并带有集合版本标签。模块可以更新、重命名、改进;角色可以更新以反映模块交互的变化;文档可以重新生成以反映编辑内容,并且所有内容都打包在一起并带有标签。
最重要的是,在集合出现之前,模块出现故障或缺乏与之交互的服务所需的及时更新的情况并不少见。这通常需要 Ansible 用户或 Ansible Tower 管理员在虚拟环境中运行多个版本的 Ansible,以使用解决模块问题的补丁。Ansible 内容集合通过将模块从核心分发中分离出来,带来了稳定性和可预测性。
对于自动化组织而言,这意味着可以随时获得经过认证的内容,并将其应用于适合从第一天起就自动化的用例。
在哪里查找集合
随着 Red Hat Ansible Automation Platform 的推出,Automation Hub 将成为经过认证的集合的来源。此外,集合创建者也可以在 Ansible Galaxy 上打包和分发内容。最终,内容的交付机制由创建者决定,Automation Hub 仅是 Red Hat 认证集合的唯一来源。
深入了解集合
Ansible 内容集合可以描述为 Ansible 内容的打包格式
此格式具有简单、可预测的数据结构,并具有直观的定义
-
docs/
:集合的本地文档 -
galaxy.yml
:将成为集合包一部分的 MANIFEST.json 的源数据 -
playbooks/
:剧本位于此处-
tasks/
:此处包含用于include_tasks/import_tasks
使用的“任务列表文件”
-
-
plugins/
:所有 Ansible 插件和模块都位于此处,每个模块位于其自己的子目录中-
modules/
:Ansible 模块 -
lookups/
:查找插件 -
filters/
:Jinja2 过滤器插件 -
connection/
:如果未使用默认连接,则需要连接插件
-
-
roles/
:Ansible 角色的目录 -
tests/
:集合内容的测试
与集合交互
除了通过浏览器下载集合之外,ansible-galaxy
命令行实用程序也已更新为管理集合,提供了与始终用于管理、创建和使用角色的功能相同的许多功能。例如,ansible-galaxy collection init
可用于为新用户创建的集合创建起点。
除了创建集合的正确目录结构之外,此命令还会生成一个元数据文件,该文件将在构建集合时使用,其中已预先填充了命名空间和集合名称
下一步去哪里
Ansible 内容集合最初在 Ansible Engine 2.8 中作为技术预览版推出,现在在 Ansible Engine 2.9 中得到完全支持,并且是 Red Hat Ansible Automation Platform 不可或缺的一部分。集合允许 Red Hat Ansible Automation Platform 提供经过认证的稳定内容,以便继续扩展自动化的用例。未来的文章将深入探讨开发新的集合以及将现有角色转换为集合。