Skip to main content
Question

Rundeck "Change the Target Nodes" issue

  • December 3, 2025
  • 2 replies
  • 45 views

Pączek
Forum|alt.badge.img

I'm struggling with a job in Rundeck that includes an Ansible script, and I'm a bit confused about the node selection behavior.

Is it possible to prevent a job from running on all nodes when “Change the Target Nodes” is unchecked?

 

It feels contradictory that:

  • the UI offers “Select All” and “Select None”,
  • the job fails if no nodes are selected,
  • but if you uncheck “Change the Target Nodes” entirely, it just runs on every node anyway.

I assumed there must be a way to force explicit node selection before running the job, but I haven’t found anything in the documentation.

This is the screen I'm referring to:

 

2 replies

Forum|alt.badge.img
  • Dutonian
  • December 3, 2025

Hi,

When "Change the Target Nodes" is unchecked, Rundeck cannot prompt for a required node selection at runtime because the feature is effectively disabled. Without a filter, it defaults to .* (all nodes). There's no built-in setting to change this fallback behavior or to force explicit node selection before execution.

Rundeck's design philosophy is: if the job author disables runtime node selection, the job should use its defined Node Filter. If that filter is blank, it defaults to all nodes. The UI's "Select All" and "Select None" buttons only apply when users are given the option to choose nodes.

However, you can work around this by using a job option in your node filter. Define an option in your job (e.g., target_node) and reference it in your node filter like this: ${option.target_node}. This allows you to specify the target node at runtime through the option value.

Regards!


Pączek
Forum|alt.badge.img
  • Author
  • New Member
  • December 8, 2025

Hi,

When "Change the Target Nodes" is unchecked, Rundeck cannot prompt for a required node selection at runtime because the feature is effectively disabled. Without a filter, it defaults to .* (all nodes). There's no built-in setting to change this fallback behavior or to force explicit node selection before execution.

Rundeck's design philosophy is: if the job author disables runtime node selection, the job should use its defined Node Filter. If that filter is blank, it defaults to all nodes. The UI's "Select All" and "Select None" buttons only apply when users are given the option to choose nodes.

However, you can work around this by using a job option in your node filter. Define an option in your job (e.g., target_node) and reference it in your node filter like this: ${option.target_node}. This allows you to specify the target node at runtime through the option value.

Regards!

Hi,

While testing, I also noticed that Rundeck strictly follows the Node Filter.
If I change the filter to something that doesn’t exist in the node set, the option to choose nodes disappears entirely. That makes sense given your explanation, the filter determines both the allowed runtime nodes and the set of nodes presented in the UI.

I just want to clarify the workaround you mentioned with job options:

If I use an option like ${option.target_node} in the Node Filter, does Rundeck automatically pull all nodes from the Ansible inventory to populate the option dropdown, or would I need to manually list every possible node as option values?

For environments with many clients (and large node counts), manually maintaining that list could become problematic.
Just want to confirm whether the option approach scales or not.

Thanks again for the explanation, it helped clear up the design behavior.