Plugins are files that contain one or more Service Provider implementations. Each plugin file could contain multiple Providers for different types of services, however typically each plugin file would contain only providers related in some fashion.
Rundeck includes a number of “built-in” providers, as well as a few “included” plugin files.
In this document “plugin” and “provider” are used somewhat interchangeably. When referring to an actual file containing the provider implementations we will say “plugin file”.
Rundeck Providers and Plugin Files
Rundeck supports several different types of plugins to perform different kinds of services:
Workflow Step - defines an action that can be a distinct step within a workflow, either for an individual Node or a set of Nodes
Node Execution - defines a mechanism to connect to a remote Node and execute a command
File Copier - defines a mechanism to copy a file to a remote node
Resource Model Source - defines a mechanism to retrieve Resource Model data (Node definitions) for use by a Rundeck project
Storage Facility - defines storage backends and content conversion
Orchestrator - defines a mechanism for orchestrating nodes when performing dispatched commands
Log Filters - can capture data from, or modify, the log output from a workflow
About Services and Providers
The Rundeck core makes use of several different “Services” that provide functionality for the different steps necessary to execute workflows, jobs, and commands across multiple nodes.
Each Service makes use of “Providers”. Each Provider has a unique “Provider Name” that is used to identify it, and most Services have default Providers unless you specify different ones to use.
Rundeck Plugin Files can contain more than one Provider.
Service Categories
Services fall into different categories, which determine how and where they are used.
Node Execution services - providers of these services operate in the context of a single Node definition, and can be configured at Node scope or higher:
Node Executor - these providers define ways of executing a command on a Node (local or remote)
File Copier - these providers define ways of copying files to a Node.
Project services
Resource Model Source - (aka “Resource Providers”) these define ways of retrieving Node resources for a Project
Global services (framework level)
Resource Format Parser - these define document format parsers
Resource Format Generators - these define document format generators
Storage Facility - these define storage backends and converters
Logging - these define log file storage and log streaming input and output
Workflow services
Workflow Step - providers define behavior for all nodes
Workflow Node Step - providers define behavior for a single node
Remote Script Node Step - a specific use-case for Node Step providers
Orchestrator - providers define how nodes are iterated over during node dispatch steps
Notification services
Notifications - external actions that are triggered when a Job starts or finishes.