diff --git a/modules/input_argument_parser.py b/modules/input_argument_parser.py
index a60192f3f859cc2e459f7a6ca4de04af69df3575..e2201750668e56da144179f22d80e535d4650e9d 100644
--- a/modules/input_argument_parser.py
+++ b/modules/input_argument_parser.py
@@ -1,6 +1,7 @@
 """This module contains functions to parse input arguments."""
 
 import argparse
+import os
 
 
 def parse_input_args():
@@ -37,7 +38,10 @@ def parse_input_args():
     flags["ansible_local"] = args.ansible_local
     flags["verbose_ansible"] = args.verbose_ansible
     flags["border_router"] = args.border_router
-    flags["provisioning_dir"] = args.provisioning_dir
-    flags["extra_vars"] = args.extra_vars
+    flags["target_location"] = "sandbox"
+    if args.provisioning_dir:
+        flags["provisioning_dir"] = os.path.abspath(os.path.expanduser(args.provisioning_dir))
+    if args.extra_vars:
+        flags["extra_vars"] = os.path.abspath(os.path.expanduser(args.extra_vars))
 
     return input_file_name, flags
diff --git a/modules/vagrant_generator.py b/modules/vagrant_generator.py
index 04490d3b0398560cc43bb635b75107b03d8f9774..0aca17c670f1f8ce5e536aea8547bc677d63a1e8 100644
--- a/modules/vagrant_generator.py
+++ b/modules/vagrant_generator.py
@@ -1,5 +1,7 @@
 """Contains functions for generating a Vagrantfile from input definitions."""
 
+import os
+
 from modules.file_manager import generate_file, open_yaml
 
 VAGRANT_MAPPING = open_yaml("conf/vagrant_mapping.yml")
@@ -137,7 +139,8 @@ def _create_ansible_commands(playbook_location, input_definitions, flags):
         if "ansible_local" in flags and flags["ansible_local"]:
             extra_vars_location = "/vagrant/extra_vars.yml"
         else:
-            extra_vars_location = flags["extra_vars"]
+            extra_vars_location = os.path.relpath(flags["extra_vars"],
+                                                  flags["target_location"])
         user_extra_vars = dict()
         user_extra_vars["type"] = "string"
         user_extra_vars["command"] = "raw_arguments"
@@ -195,8 +198,8 @@ def _call_provisioner(input_definitions, flags):
     """Create entry to vagrant definitions for calling the provisioner."""
     provisioner_calls = []
 
-    if "extra_vars" in flags and flags["extra_vars"] and\
-        "ansible_local" in flags and flags["ansible_local"]:
+    if "extra_vars" in flags and flags["extra_vars"] and \
+       "ansible_local" in flags and flags["ansible_local"]:
         copy_extra_vars = dict()
         copy_extra_vars["type"] = "provision"
         copy_extra_vars["provisioner"] = "file"
@@ -205,7 +208,8 @@ def _call_provisioner(input_definitions, flags):
         source_arg = dict()
         source_arg["type"] = "string"
         source_arg["command"] = "source"
-        source_arg["value"] = flags["extra_vars"]
+        source_arg["value"] = os.path.relpath(flags["extra_vars"],
+                                              flags["target_location"])
         destination_arg = dict()
         destination_arg["type"] = "string"
         destination_arg["command"] = "destination"
@@ -213,7 +217,6 @@ def _call_provisioner(input_definitions, flags):
         copy_extra_vars["commands"] = [source_arg, destination_arg]
         provisioner_calls.append(copy_extra_vars)
 
-
     config_playbook = dict()
     config_playbook["type"] = "provision"
     if "ansible_local" in flags and flags["ansible_local"]: