Rundeck Enterprise Architecture
The Rundeck Enterprise environment needs the following shared resources:
All the cluster members must share the same DB:
See: Database Backends.
The keys and project data must be stored in the DB (enabled by default since 2.4.x):
See: Storage Facility
A loadbalancer allows you to achieve high availability in your Rundeck Enterprise installation by routing http traffic across several redundant Rundeck Enterprise instances.
grails.serverURLparameter of all cluster members (
rundeck-config.properties) with the LB URL.
Use Sticky session
All Cluster members must share the log storage.
Note: If you use the S3 Log Storage Plugin Be sure to use
com.rundeck.rundeckpro.amazon-s3 in place of
org.rundeck.amazon-s3. It adds the additional feature:
- Checkpoint log storage: This enables viewing the execution logs while the execution is running.
The cluster environment needs a common authentication method. All the instances must have access to the same list of users/groups
See: Authenticating Users
Projects need a common resource model that can be accessed from all cluster members. These are some of the alternatives to achieve this:
- A shared file system
- A script
- A REST endpoint
See: Node Model Sources
Scheduled jobs are owned by the last cluster member who modified them. Jobs can also be controlled using Cluster Manager. If a cluster member goes down, all scheduled jobs on that cluster member must be moved to another cluster node. This process can be performed automatically using the heartbeat and Autotakeover features in Rundeck Enterprise version 2.1.0 and later releases.
Cluster Remote Execution Policy
This feature allows Rundeck Enterprise cluster members to forward job executions to other cluster members based on a policy configuration.
See: Remote Job Execution
Rundeck Enterprise Replication
This plugin is used for an active/passive configuration. Each cluster member can have its own database.