规则手册和集合

完全可以在源代码库中构建和跟踪简单的规则手册和剧本。如果您发现自己构建了更复杂且可重复的规则手册,这些规则手册依赖于其他内容、功能或模块,那么您可能需要考虑将它们打包到集合中。

集合是一个现有的 Ansible 打包概念,已经扩展到支持 Ansible 规则手册内容。规则手册集合也特别适合与决策环境一起使用。

包含规则手册内容的集合结构

集合已经具有现有结构,支持 Ansible 角色、模块、插件和文档。让我们看看我们可以在该结构中添加什么来支持 ansible-rulebook 内容。

collection/
├ ...
├── extensions/
│   ├── eda/
│   │   ├── rulebooks/
│   │   └── plugins/
│   │       ├── event_source/
│   │       └── event_filter/
└ ...

集合还有更多内容,但这些是添加到集合中以供 ansible-rulebook 本身查找的内容。您也可以在集合中放置角色、剧本和其他内容,尤其是当您要从规则手册中调用和使用它们时。

您将以与任何其他集合相同的方式初始化集合。

ansible-galaxy collection init my_collection

然后,您可以添加上面的目录,并开始用内容填充它。

并非您编写的每个集合都将拥有自己的插件,但如果您发现自己构建了自己的事件源事件过滤器,那么您需要将它们放在集合中,如上所示。

使用包含在集合中的规则手册

ansible-rulebook 命令可以直接使用规则手册文件的路径,但一旦您将规则手册放入集合中,并且它在环境中可用,那么您可以使用其完全限定名称来引用它。

ansible-rulebook -r my_namespace.my_collection.my_rulebook

注意

有关如何构建和发布集合的更多详细信息,请参阅开发 Ansible 集合文档。