核心概念
ReliaForge 以插件的形式运行 Python 运维工具。开发者提供工具,平台负责加载、检查依赖、 读取配置,以及启动和停止。
插件是什么?
插件是一个包含 Python 代码和 manifest.json 的目录。这个文件告诉 ReliaForge 插件叫什么、 版本是多少、从哪里运行,以及需要哪些其他插件。
代码可以提供查询接口、在后台采集数据,也可以提供 Runbook 服务,具体功能由作者决定。 开发插件会带你把一个 Python 函数变成团队可以调用的 API。
启动插件会发生什么?
后端检查插件配置,准备运行所需的资源,然后调用启动代码。插件依赖的其他插件必须先运行。 停止时会调用作者编写的清理代码,例如关闭客户端、结束后台任务。
控制台显示两种状态:
| 状态 | 告诉你什么 |
|---|---|
| 运行状态 | 插件正在运行、已经停止,还是发生了错误 |
| 健康状态 | 运行中的服务是否报告了问题;插件运行时,健康状态仍可能是降级 |
启动插件后,它提供的服务才可使用。执行查询或其他业务操作时,还需要调用服务的 API。
怎样使用它提供的服务?
每个插件在 /api/v1/plugins/{plugin_id} 下提供自己的 API。接口地址、参数和返回结果以作者的 使用说明为准。本地开发时,也可以在 http://127.0.0.1:8000/api/v1/docs 浏览接口。
控制台用于查看插件状态和执行启停操作。插件的业务界面由作者提供。
插件之间怎样协作?
插件可以向其他插件共享 Python 服务。例如,demo 提供 demo.greeting,内置的 runbook 插件调用它生成文本预览。
提供者在 capabilities 中列出服务名称。使用者先在 dependencies 中列出提供者,再获取服务。 这两个字段说明插件之间如何协作;HTTP 接口在插件的路由文件中定义。
在哪里改配置?
在启动后端之前设置插件需要的环境变量。插件的 PluginSettings 类定义可用配置项。例如, 生成的 sample_tool 从 RELIAFORGE_SAMPLE_TOOL_MESSAGE 读取消息内容。
控制台显示字段定义,包括类型和默认值,不显示当前实际值。密钥值和密钥默认值会被省略。 为自己的插件增加配置时,请参考后端的 配置示例。
