graph LR
Nornir_Core_Framework["Nornir Core Framework"]
Configuration_Management["Configuration Management"]
Inventory_Management["Inventory Management"]
Task_Execution_Engine["Task Execution Engine"]
Plugin_System["Plugin System"]
Connection_Handlers["Connection Handlers"]
Event_Processing["Event Processing"]
Nornir_Core_Framework -- "Loads and applies system-wide settings" --> Configuration_Management
Nornir_Core_Framework -- "Initializes and manages the network inventory" --> Inventory_Management
Nornir_Core_Framework -- "Orchestrates the execution of automation tasks" --> Task_Execution_Engine
Nornir_Core_Framework -- "Discovers and registers various Nornir plugins" --> Plugin_System
Nornir_Core_Framework -- "Notifies registered processors about task lifecycle events" --> Event_Processing
Configuration_Management -- "Provides configuration details for inventory loading and behavior" --> Inventory_Management
Configuration_Management -- "Supplies connection-specific parameters (e.g., SSH settings)" --> Connection_Handlers
Inventory_Management -- "Provides filtered host and group data for task execution" --> Task_Execution_Engine
Inventory_Management -- "Requests the establishment and termination of connections to devices" --> Connection_Handlers
Task_Execution_Engine -- "Executes automation logic over established connections" --> Connection_Handlers
Task_Execution_Engine -- "Triggers callbacks at various stages of task and subtask execution" --> Event_Processing
Task_Execution_Engine -- "Utilizes runner and task plugins to define execution behavior" --> Plugin_System
Plugin_System -- "Provides custom inventory loading mechanisms" --> Inventory_Management
Plugin_System -- "Supplies different connection types (e.g., SSH, Telnet)" --> Connection_Handlers
click Nornir_Core_Framework href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/nornir/Nornir_Core_Framework.md" "Details"
click Configuration_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/nornir/Configuration_Management.md" "Details"
click Inventory_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/nornir/Inventory_Management.md" "Details"
click Plugin_System href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/nornir/Plugin_System.md" "Details"
click Connection_Handlers href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/nornir/Connection_Handlers.md" "Details"
click Event_Processing href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/nornir/Event_Processing.md" "Details"
Nornir operates as a highly modular automation framework centered around the Nornir Core Framework. This core component initializes the system, loads operational settings from Configuration Management, and builds the network topology via Inventory Management. Once the inventory is prepared, the Nornir Core Framework orchestrates automation workflows by passing tasks to the Task Execution Engine. The Task Execution Engine leverages Connection Handlers to establish and manage connections to network devices, often utilizing various Plugin System components (e.g., inventory, runner, connection plugins) to extend its capabilities. Throughout the execution, Event Processing provides a callback mechanism for monitoring and custom logic, ensuring a flexible and extensible automation pipeline.
Nornir Core Framework [Expand]
The central orchestrator, responsible for initialization, state management, and coordinating workflow execution.
Related Classes/Methods:
nornir.corenornir.init_nornirnornir.core.statenornir.init_nornir.InitNornir:41-75nornir.core.Nornirnornir.core.Nornir:run
Configuration Management [Expand]
Handles loading, parsing, and validating Nornir's operational settings.
Related Classes/Methods:
nornir.core.configurationnornir.core.configuration.Config:234-316nornir.core.configuration.InventoryConfig:70-103nornir.core.configuration.SSHConfig:57-67
Inventory Management [Expand]
Stores, manages, and provides access to network inventory data, including filtering capabilities.
Related Classes/Methods:
nornir.core.inventorynornir.core.filternornir.core.inventory.Inventory:577-644nornir.core.inventory.Inventory:filternornir.core.inventory.Host:open_connectionnornir.core.inventory.Host:close_connections
Defines the structure and execution flow for automation tasks, managing their lifecycle and results.
Related Classes/Methods:
Plugin System [Expand]
Manages the discovery, registration, and availability of various Nornir plugins (inventory, runner, task, connection).
Related Classes/Methods:
nornir.core.plugins.registernornir.core.plugins.connectionsnornir.core.plugins.inventorynornir.core.plugins.runners
Connection Handlers [Expand]
Manages the establishment, maintenance, and termination of connections to network devices.
Related Classes/Methods:
nornir.core.inventorynornir.core.plugins.connectionsnornir.core.inventory.Host:open_connectionnornir.core.inventory.Host:close_connections
Event Processing [Expand]
Provides a callback mechanism for custom logic to be executed at different stages of task and subtask lifecycle events.
Related Classes/Methods: