<!-- BusyBot node reference — https://busybot.net/tools/rundeck/ -->

> Node: Rundeck (`rundeck`) · Action · v1
> Category: Communication · Credentials: Rundeck API (`rundeckApi`)
> Updated: 2026-08-16

# Rundeck

> Execute jobs and retrieve metadata from Rundeck.

## Overview

Rundeck is a runbook automation and job scheduler. This tool allows executing Rundeck jobs by ID with optional arguments and node filters, and retrieving job metadata. It connects to a Rundeck server instance via its REST API using an API token for authentication.

**Category:** Communication  
**Tool Name:** `rundeck`  
**Version:** 1

**Appearance:** Icon: `lucide-Wrench` | Color: `#F73F39`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Rundeck API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/rundeck-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Job | `job` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Job: Execute | `execute` | Execute a job |
| Job: Get Metadata | `getMetadata` | Get metadata of a job |

### Parameters

#### Job: Execute

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Job ID | `string` | Yes | — | The UUID of the Rundeck job to execute. Supports expressions. |
| Arguments | `fixedCollection` | No | `{}` | Key-value pairs to pass as job options. Each becomes "-name value" in the argString. |
| — Name | `string` | No | — | The argument name (without the leading dash). |
| — Value | `string` | No | — | The argument value. Supports expressions. |
| Filter | `string` | No | — | Filter Rundeck nodes by name or expression (e.g. "tags: web"). Supports expressions. |

#### Job: Get Metadata

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Job ID | `string` | Yes | — | The UUID of the Rundeck job to retrieve metadata for. Supports expressions. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

One output item is produced per input item, on the `Output` port. The Rundeck response is merged onto the item JSON at the top level — it is not nested under a wrapper property — so the rest of the incoming item passes through unchanged and response fields are addressed directly, for example `{{ $json.id }}`. Binary data on the input item is forwarded untouched. Neither operation fans out: one input item always yields exactly one output item.

| Operation | What lands on the item |
|-----------|------------------------|
| `execute` | Rundeck's response to the run request, describing the execution it created. |
| `getMetadata` | Rundeck's stored definition of the job, as its API returns it. |

An HTTP error from the Rundeck server raises an item error carrying the status code and the server's response body. Failures go to the `Error` port in `errorPort` mode, carrying `_error`.

## Usage Examples

- Execute a Rundeck job with arguments
- Get metadata for a Rundeck job
- Run a deployment job on filtered nodes

## Example Configuration

Run a job by its UUID with no options:

```json
{
  "type": "rundeck",
  "parameters": {
    "resource": "job",
    "operation": "execute",
    "jobid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
}
```

Pass job options as arguments, taking one of the values from the incoming item:

```json
{
  "type": "rundeck",
  "parameters": {
    "resource": "job",
    "operation": "execute",
    "jobid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "arguments": {
      "arguments": [
        { "name": "environment", "value": "production" },
        { "name": "version", "value": "{{ $json.releaseTag }}" }
      ]
    }
  }
}
```

Restrict a deployment job to the nodes that match a filter, and keep the request rate low:

```json
{
  "type": "rundeck",
  "parameters": {
    "resource": "job",
    "operation": "execute",
    "jobid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "arguments": {
      "arguments": [
        { "name": "deploy_type", "value": "rolling" },
        { "name": "timeout", "value": "300" }
      ]
    },
    "filter": "tags: web",
    "maxConcurrency": 5
  }
}
```

Read a job's metadata instead of running it:

```json
{
  "type": "rundeck",
  "parameters": {
    "resource": "job",
    "operation": "getMetadata",
    "jobid": "{{ $json.jobId }}"
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Execute Rundeck jobs or retrieve job metadata from a Rundeck automation server.

### Notes

- Arguments are concatenated into a single argString in the order you list them, each rendered as `-name value`. An entry with an empty Name is skipped, so keep the Name field filled.
- Filter applies only to `execute`; it selects which Rundeck nodes the job runs on and has no effect on `getMetadata`.
- Both operations take the same Job ID field, so switching between Execute and Get Metadata keeps the UUID you already entered.