diff --git a/modules/vagrant_generator.py b/modules/vagrant_generator.py
index 79bbc1d02836f4c2a08cea70a6df9619622fb5f2..1bb4dfd2a93cff197de219feb12473a1167d4517 100644
--- a/modules/vagrant_generator.py
+++ b/modules/vagrant_generator.py
@@ -206,6 +206,19 @@ def _call_provisioner(device_name, input_definitions, flags):
     """Create entry to vagrant definitions for calling the provisioner."""
     provisioner_calls = []
 
+    if device_name == CONTROLLER_NAME:
+        shell_provisioning = dict()
+        shell_provisioning["type"] = "provision"
+        shell_provisioning["provisioner"] = "shell"
+        shell_provisioning["note"] = "install pip3 and ansible"
+
+        install_ansible = dict()
+        install_ansible["type"] = "string"
+        install_ansible["command"] = "inline"
+        install_ansible["value"] = "sudo apt-get install -y python3-pip && pip3 install --upgrade ansible"
+        shell_provisioning["commands"] = [install_ansible]
+        provisioner_calls.append(shell_provisioning)
+
     config_playbook = dict()
     config_playbook["type"] = "provision"
     if "ansible_local" in flags and flags["ansible_local"]: