diff --git a/roles/libvirt_manager/templates/domain.xml.j2 b/roles/libvirt_manager/templates/domain.xml.j2
index d52bfb4f9e..de2c215778 100644
--- a/roles/libvirt_manager/templates/domain.xml.j2
+++ b/roles/libvirt_manager/templates/domain.xml.j2
@@ -16,7 +16,20 @@
-
+
+{% if vm_data.numa is defined and vm_data.numa|int > 1 %}
+
+ {% set cores_per_node = (vm_data.cpus|int // vm_data.numa|int) %}
+ {% set mem_per_node = (vm_data.memory|int // vm_data.numa|int) %}
+ {% set cpu_ns = namespace(cpu_start=0) %}
+ {% for i in range(vm_data.numa|int) %}
+ {% set cpu_end = cpu_ns.cpu_start + cores_per_node - 1 %}
+ |
+ {% set cpu_ns.cpu_start = cpu_end + 1 %}
+ {% endfor %}
+
+{% endif %}
+