diff --git a/ansible/compute-node-discovery.yml b/ansible/compute-node-discovery.yml
index 983d26543506b35ae5516ce75c80e948adabf071..51154757ea5e2cb1f643969712c4be2a4801799e 100644
--- a/ansible/compute-node-discovery.yml
+++ b/ansible/compute-node-discovery.yml
@@ -2,6 +2,11 @@
 - name: Ensure compute nodes are present in the Ansible inventory
   hosts: config-mgmt
   gather_facts: no
+  vars:
+    # Set this to a colon-separated list of compute node hostnames on which to
+    # trigger discovery. If unset, all compute nodes will be triggered.
+    compute_node_limit:
+    compute_node_limit_list: "{{ compute_node_limit.split(':') }}"
   tasks:
     - name: Add hosts for the compute nodes
       add_host:
@@ -12,6 +17,7 @@
       when:
         - "{{ item.key not in groups['all'] }}"
         - "{{ item.key | replace('-idrac', '') not in groups['all'] }}"
+        - "{{ not compute_node_limit or item.key | replace('-idrac', '') in compute_node_limit_list }}"
       run_once: True
 
 - name: Ensure compute nodes are PXE booted