Welcome, Guest Login

Rundeck Enterprise Support Center

Configuring Cluster Remote Execution

Last Updated: Dec 26, 2017 12:37PM PST

The following features require Pro Cluster 2.2.0+

 

HeartBeat settings


In rundeck-config.properties:

    # heartbeat interval in seconds
    rundeck.clusterMode.heartbeat.interval=30
    
    # initial delay after startup to send heartbeat
    rundeck.clusterMode.heartbeat.delay=10
    
    # remote execute/abort message processing interval in seconds
    rundeck.clusterMode.remoteExec.process.interval=10
    
    # age in seconds since last heartbeat to consider another member inactive
    rundeck.clusterMode.heartbeat.considerInactive=150
    
    # age in seconds since last heartbeat to consider another member dead
    rundeck.clusterMode.heartbeat.considerDead=86400


Remote Execution


This feature allows Rundeck Pro Cluster Members to forward Job Executions to other Cluster Members based on a policy configuration.

By default, each member of the cluster will execute jobs locally and not forward them.

You can define multiple Profiles, and assign different projects to different profiles.  If a job is executed in a project which is not assigned to a specific profile, then the Default Policy is used.

Here is how you can set define the Default Remote Execution Policy in rundeck-config.properties:

    rundeck.clusterMode.remoteExecution.policy = <Policy>
    rundeck.clusterMode.remoteExecution.config.allowed = <List of Allowed Members>
    rundeck.clusterMode.remoteExecution.config.allowedTags = <List of Member Tags>

    rundeck.clusterMode.remoteExecution.config.preferredTags = <List of Member Tags>
    rundeck.clusterMode.remoteExecution.config.activeOnly = true/false


Here is how you can define additional profiles by name:

    rundeck.clusterMode.remoteExecution.profiles = profile1, profile2

Here is how you assign projects to a profile by name:

    rundeck.clusterMode.remoteExecution.profile.profile1.projects=projectA, projectB

Here is how you define policy type and config for profile1:

    rundeck.clusterMode.remoteExecution.profile.profile1.policy= <Policy>
    rundeck.clusterMode.remoteExecution.profile.profile1.config.allowed = <List of Allowed Members>
    rundeck.clusterMode.remoteExecution.profile.profile1.config.allowedTags = <List of Member Tags>

    rundeck.clusterMode.remoteExecution.profile.profile1.config.preferredTags = <List of Member Tags>
    rundeck.clusterMode.remoteExecution.profile.profile1.config.activeOnly = true/false


The <Policy> is one of: 
  • None (default) executes locally only
  • Random executes randomly among allowed members
  • RoundRobin executes round-robin style among allowed members
  • Preset executes on one other preset member
  • Load executes on a member based on load (Requires Pro Cluster 2.3.0+)

The `<List of Allowed Members>` is a list determining which other Cluster Members the policy can execute on.  This is a comma-separted list of:
  • `self` (execute locally)
  • `other` (any other member except this one)
  • `UUID` a particular UUID
  • `/regex/` a regular expression matching a UUID

These can be combined if you want to include `self` and a regular expression for example:
    
    rundeck.clusterMode.remoteExecution.config.allowed = self,/1C519C5A-4E78-4BE9-85EC-.+/

The `<List of Member Tags>` further lets you restrict the remote Cluster Members by using tags.  

You can set tags in for a Cluster Member in the `framework.properties` file:

    rundeck.server.uuid=...
    rundeck.server.tags=worker,linux


The tags are similar to Node Tags.

The special tag `self` is automatically only assigned to the *local* cluster node.

The policy of Allowed Tags is configured in a similar way, using comma-separated allowed tags, or `+` separated tags which require all tags. 

For example, this configuration:

    rundeck.clusterMode.remoteExecution.policy = RoundRobin
    rundeck.clusterMode.remoteExecution.config.allowed = other
    rundeck.clusterMode.remoteExecution.config.allowedTags = worker,secondary


Translates to: "Use Round Robin execution on any other cluster member tagged as `worker` OR `secondary`"

You can use Preferred Tags to indicate that certain members are preferred.  When Preferred Tags are defined, and some of the allowed members match those tags, then the Preferred Members will be used.  If no Preferred Members are available, then the policy will fall back to the Allowed Members that are available.

This configuration defines Allowed Tags and Preferred Tags:

    rundeck.clusterMode.remoteExecution.policy = RoundRobin
    rundeck.clusterMode.remoteExecution.config.allowed = other

    rundeck.clusterMode.remoteExecution.config.allowedTags = *
    rundeck.clusterMode.remoteExecution.config.allowedTags = worker,secondary

This translates to: "Use Round Robin execution on any `worker` OR `secondary` members, if available. Otherwise, use Round Robin on all other members"


Load Balanced Policy (Enable it from Rundeck Pro 2.3.1)


This feature allows Rundeck Pro Cluster Members to forward Job Executions to other Cluster Members based on some statistics calculated by the heartbeat process of each cluster member.

When using the policy `Load`, load is calculated for each member based on two "criteria": "threadRatio" and "load" (cpu load %).

Config:

    rundeck.clusterMode.remoteExecution.config.criteria = threadRatio,load

Each "criteria" can be weighted, using a relative value:

    rundeck.clusterMode.remoteExecution.config.weights = 1.0,1.5

The members are sorted by the weighted load, and placed into "groups".

Each group is given a weight, and the policy randomly chooses a group based on the proportional weight of the group.

Finally, a member of the group is chosen randomly and used.

    rundeck.clusterMode.remoteExecution.config.groupWeight=1,0,0,0

This defines 4 groups, each with 25% of members. The weights define 100% chance of the first group being used.

 
1fb43f9155a47800b95738aff7e657fc@rundeck.desk-mail.com
http://assets3.desk.com/
false
desk
Loading
seconds ago
a minute ago
minutes ago
an hour ago
hours ago
a day ago
days ago
about
false
Invalid characters found
/customer/en/portal/articles/autocomplete