Nornir支持插件,nornir 3仅包含非常基本的系统,有关第三方插件的列表,请访问nornir.tech。
Plugin插件
从nornir3开始,需要注册一些插件才能使用。特别是:
- inventory插件
- 转换功能
- 连接插件
- Runner
为此,您可以使用入口点或以编程方式使用。
在您的中使用入口点setup.py
:
setup( # ... entry_points={ "PATH": "NAME = path.to:Plugin", } )
在pyproject.toml中,如果使用poetry
:
[tool.poetry.plugins."PATH"] "NAME" = "path.to:Plugin"
PATH在哪里:
nornir.plugins.inventory
-用于inventory插件nornir.plugins.transform_function
-用于转换功能nornir.plugins.runners
-Runnernornir.plugins.connections
-用于连接插件
NAME是您以后要引用的方式以及path.to:Plugin
导入路径。例如:
[tool.poetry.plugins."nornir.plugins.inventory"] "inventory-name" = "path.to:InventoryPlugin"
为此,以编程方式导入正确的插件注册并使用register
方法。例如:
from nornir.core.plugins.inventory import InventoryPluginRegister from path.to import InventoryPlugin InventoryPluginRegister.register("inventory-name", InventoryPlugin)
连接数
连接插件是nornir插件,它允许nornir管理与设备的连接
Inventory
inventory插件是nornir插件,它使nornir可以从外部源创建广告资源对象
Included
classnornir.plugins.inventory.__init__.SimpleInventory
(host_file: str = ‘hosts.yaml’, group_file: str = ‘groups.yaml’, defaults_file: str = ‘defaults.yaml’)
load
() → nornir.core.inventory.Inventory
转换功能
转换功能是一个插件,可独立于所使用的inventory插件来操纵inventory。使用环境,秘密存储区或类似数据扩展数据很有用。
Runners
运行程序是一个插件,指示如何在host上执行task
Included包含
classnornir.plugins.runners.__init__.SerialRunner
SerialRunner runs the task over each host one after the other without any parellelizationrun
(task: nornir.core.task.Task, hosts: List[nornir.core.inventory.Host]) → nornir.core.task.AggregatedResult classnornir.plugins.runners.__init__.ThreadedRunner
(num_workers: int = 20) ThreadedRunner runs the task over each host using threads Parameters: num_workers – number of threads to userun
(task: nornir.core.task.Task, hosts: List[nornir.core.inventory.Host]) → nornir.core.task.AggregatedResult
有关更多信息,请ThreadedRunner
阅读执行模型。
处理器
处理器是一种插件,可以利用某些事件,并允许用户在这些事件上执行任意代码。