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