Table of Contents
- Overview
- Plugin Types
- Plugin Management
- Best Practices
- Example: Plugin Configuration Snippet
- Conclusion
Normir Automation: Plugins Overview
What Are Plugins in Normir Automation?
Plugins in Normir Automation are modular software components designed to extend and adapt the platform to different network environments and operational requirements. They act as building blocks—allowing you to mix, match, and customize how your infrastructure is managed, automated, and integrated with third-party services.
At their core, plugins enable Normir to:
- Communicate with various devices and cloud platforms.
- Process inventory data from multiple sources.
- Execute automation tasks in different ways.
- Integrate with existing orchestration, ticketing, and notification systems.
- Enhance security, observability, and workflow flexibility.
Why Should You Know About Plugins?
Understanding plugins is crucial for several reasons:
- Unlock Flexibility: Plugins empower you to support legacy hardware, hybrid cloud, or rapidly changing environments, overcoming vendor or protocol limitations.
- Enhance Automation: The right combination of plugins lets you automate more tasks, end-to-end—from device discovery to post-deployment notifications—without reinventing the wheel each time.
- Maintain Security and Compliance: You can choose plugins that enforce your organization’s security policies, integrate with secrets management, or handle sensitive credentials securely.
- Promote Agility: Modular plugins mean you can update, swap, or enhance specific parts of your workflow without impacting the entire system. That reduces risk and speeds up adaptation to new technologies or business demands.
- Community & Collaboration: Many plugins are open-source or community-maintained, which allows you to tap into collective best practices and innovations—while still being able to build custom solutions as needed.
How Do Plugins Work in Normir Automation?
Normir Automation uses a plugin-based architecture, where each plugin serves a specialized function within the automation pipeline. Here’s a high-level summary of how they work:
- Registration
Plugins are declared in your project’s configuration, specifying their type and any necessary parameters. - Integration
The automation engine loads these plugins based on the declared types (e.g., inventory, connection, runner, processor) and connects them to the appropriate execution points in your workflow. - Execution
During an automation run, Normir leverages enabled plugins to perform actions—such as gathering inventory from NetBox, connecting to devices over SSH, sending notifications to Slack, or post-processing results for compliance auditing. - Customization
You can configure, combine, and sequence multiple plugins to create robust, end-to-end automation pipelines. Advanced users can even write custom plugins for organization-specific needs, following Normir’s API guidelines.
Plugins are the engine behind Normir Automation’s adaptability and power—the key to automating complex, multi-vendor networks efficiently and reliably. Having a strong grasp of how plugins function and the advantages they bring is fundamental for anyone looking to automate infrastructure at scale.
Plugin Types
Plugins are the backbone of Normir Automation’s extensible architecture, allowing users to tailor automation to diverse infrastructure requirements. Understanding plugin types is crucial for building a scalable, maintainable automation workflow.
-
Inventory Plugins:
Manage device and host information, providing the inventory data that automation tasks operate on. These can pull data from simple files (YAML, CSV), databases, or external platforms like NetBox and Ansible. -
Connection Plugins:
Enable Normir Automation to communicate with various devices and platforms using different network protocols (SSH, NETCONF, Telnet, REST APIs). Each plugin implements the logic needed for session management, authentication, and message exchange. -
Runner Plugins:
Dictate how automation tasks execute across inventory hosts. Examples include serial (one host at a time) or threaded (concurrent execution), providing flexibility for scale and error isolation. -
Task Plugins:
Define custom automation actions, such as sending configuration commands, running validations, or collecting telemetry data. These plugins encapsulate network logic and reusability. -
Processor Plugins:
Intercept task execution events to perform tasks such as logging, result formatting, or custom pre/post-processing actions. Useful for integrating with workflows, tracking automation runs, and enhancing output. -
Transform Function Plugins:
Manipulate inventory data before task execution. Common use cases include injecting secrets from secure stores, enriching host metadata, or customizing configuration logic per environment.
Each plugin type fulfills a specific role in the automation pipeline. By combining multiple types, users can design workflows that are modular, secure, and highly customizable—whether working with legacy networks or modern, cloud-native platforms.
Plugin Management
Effective plugin management ensures Normir Automation remains reliable, secure, and scalable. Plugins power every stage of the automation pipeline—from device communication to inventory and reporting—so managing them systematically is key to resilient infrastructure workflows.
-
Installation:
Plugins can be installed manually via pip (for Python-based plugins), or automatically pulled from approved registries. For internal tooling, plugins can be bundled with deployment artifacts. -
Registration:
Once installed, plugins must be registered in the Normir configuration files to make them available in runtime—typically under defined plugin hooks like inventory, connection, or processor. -
Configuration:
Plugin parameters (such as credentials, endpoints, or behavior toggles) are set via YAML or ENV variables. Secure data should be vaulted or injected at runtime using secret management tools. -
Version Pinning:
Locking plugin versions ensures consistent behavior across development, staging, and production environments. Always pin community or third-party plugins with semantic versioning to prevent unexpected changes. -
Updates & Maintenance:
Periodically audit plugins for newer versions, deprecations, or security updates. Use changelogs for visibility before applying updates and validate changes in an isolated test environment prior to rolling into production.
Start with a defined plugin strategy for your automation platform: track who installs and maintains plugins, enforce version control, and test compatibility regularly. This reduces downtime, maintains security posture, and promotes repeatable infrastructure practices.
Best Practices
Following best practices when using and managing plugins ensures your network automation workflows stay secure, reliable, and maintainable. Whether working with community-developed or internal plugins, consistency in how they’re handled will significantly reduce operational risk.
-
Audit All Plugins Before Use:
Review the source code and maintainers of any third-party plugins. Avoid plugins with unknown origins or poor maintenance records. -
Use Version Pinning:
Lock all plugin versions in configuration or dependency files. This prevents unexpected behaviors and ensures repeatability across environments. -
Secure Sensitive Configuration Values:
Never hard-code secrets, tokens, or credentials in plugin configurations. Use environment variables or a secrets manager to store sensitive data safely. -
Segment Plugin Functions:
Use different plugins for inventory, execution, and transport responsibilities. This enhances modularity and makes debugging much easier. -
Test Plugins in Staging First:
Prior to rolling out plugin updates or new plugins in production, test them in a sandboxed staging environment that mirrors your infra. -
Create a Plugin Update Policy:
Assign ownership for plugin maintenance and establish a regular update cycle. Document versions and update notes as part of change management. -
Enable Logging and Observability:
Configure detailed logging for plugin operations. Visibility into plugin behavior helps root-cause issues and optimize performance.
A disciplined approach to plugin management helps keep your automation platform resilient. Build your practices into version control, CI/CD pipelines, and team workflows for long-term sustainability.
Example: Plugin Configuration Snippets
Here are real-world examples of how Normir Automation plugins can be defined in configuration files. These snippets demonstrate inventory loading, version control sync, notification alerts, and runtime extensions.
plugins:
- name: netbox_inventory
type: inventory
config:
url: "https://netbox.internal.example"
token: "${NETBOX_API_TOKEN}"
ssl_verify: true
- name: device_connection_ssh
type: connection
config:
protocol: ssh
username: "${DEVICE_USER}"
private_key: "${SSH_PRIVATE_KEY}"
port: 22
- name: slack_notifications
type: notification
config:
webhook_url: "${SLACK_WEBHOOK_URL}"
channel: "#network-automation"
notify_on: ["failure", "success"]
- name: config_audit_logger
type: processor
config:
output_file: "/var/log/normir/config_audit.log"
level: "info"
Each plugin entry has three main components:
- name: A unique identifier for referencing the plugin inside your automation tasks.
- type: Defines the plugin's purpose—whether it handles inventory, connections, task execution, or post-processing.
- config: Holds the specific settings the plugin needs to run, leveraging environment variables for secrets and environment-specific options.
These snippets can be stored in your main configuration YAML file or injected at runtime with CI/CD pipelines and templating engines. Using modular, reusable plugin blocks like these helps align infrastructure-as-code principles with network automation.
Conclusion
Throughout this blog post, we explored how plugins form the backbone of the Normir Automation platform. They’re what transform Normir from a simple task runner into a scalable, modular automation system tailored to your infrastructure.
Here’s a quick recap of what we covered:
- 🔌 Plugin Types: Each plugin type serves a specialized purpose, including inventory discovery, device connections, task execution, post-processing, and data transformation.
- ⚙️ Plugin Management: Proper installation, registration, and version control are vital to maintaining a stable and secure automation workflow.
- ✅ Best Practices: We emphasized the importance of reviewing source code, using version pinning, isolating secrets, testing changes in staging, and enabling observability.
- 🧾 Configuration Snippets: With YAML-based snippets, we showed how easy plugin integration can be when you follow a consistent structure and modularize your plugin definitions.
Whether you're just starting to integrate plugins or looking to evolve your current workflows, Normir Automation gives you the flexibility and structure you need to automate complex, multi-vendor environments with confidence.
Thanks for following along! 🚀