Nornir 插件

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 -Runner
  • nornir.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 parellelization
run(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 use
run(task: nornir.core.task.Task, hosts: List[nornir.core.inventory.Host]) → nornir.core.task.AggregatedResult

有关更多信息,请ThreadedRunner阅读执行模型。

处理器

处理器是一种插件,可以利用某些事件,并允许用户在这些事件上执行任意代码。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁