diff --git a/.gitlab-ci/vagrant.yml b/.gitlab-ci/vagrant.yml
index 7d8c15b260a634578d1ffb97500bf69565e875d4..a6c0e002d1a92a5145328383384345ac33c938cf 100644
--- a/.gitlab-ci/vagrant.yml
+++ b/.gitlab-ci/vagrant.yml
@@ -12,6 +12,7 @@ molecule_tests:
     - apt-get update && apt-get install -y python3-pip
     - update-alternatives --install /usr/bin/python python /usr/bin/python3 10
     - python -m pip install -r tests/requirements.txt
+    - ./tests/scripts/vagrant_clean.sh
   script:
     - ./tests/scripts/molecule_run.sh
 
@@ -26,6 +27,11 @@ molecule_tests:
   except: ['triggers']
   image: quay.io/kubespray/vagrant:$KUBESPRAY_VERSION
   services: []
+  before_script:
+    - apt-get update && apt-get install -y python3-pip
+    - update-alternatives --install /usr/bin/python python /usr/bin/python3 10
+    - python -m pip install -r tests/requirements.txt
+    - ./tests/scripts/vagrant_clean.sh
   script:
     - vagrant up
   after_script:
diff --git a/tests/scripts/vagrant_clean.sh b/tests/scripts/vagrant_clean.sh
new file mode 100755
index 0000000000000000000000000000000000000000..981c2d2f8be92e31ef9804a4dafa771c5c120c82
--- /dev/null
+++ b/tests/scripts/vagrant_clean.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+set -euxo pipefail
+
+# Cleanup vagrant VMs to avoid name conflicts
+
+for i in $(virsh list --name)
+do
+    virsh destroy "$i"
+    virsh undefine "$i"
+done
\ No newline at end of file