diff --git a/modules/input_argument_parser.py b/modules/input_argument_parser.py
index 1964d8bf6307fe5386d07af0e6902eff36adabf6..a60192f3f859cc2e459f7a6ca4de04af69df3575 100644
--- a/modules/input_argument_parser.py
+++ b/modules/input_argument_parser.py
@@ -27,6 +27,10 @@ def parse_input_args():
     parser.add_argument("--provisioning_dir",
                         help="path to directory with user provisioning files",
                         action="store")
+    parser.add_argument("--extra_vars",
+                        help="path to file with extra_vars for ansible",
+                        action="store")
+
     args = parser.parse_args()
 
     input_file_name = args.definition_file
@@ -34,5 +38,6 @@ def parse_input_args():
     flags["verbose_ansible"] = args.verbose_ansible
     flags["border_router"] = args.border_router
     flags["provisioning_dir"] = args.provisioning_dir
+    flags["extra_vars"] = args.extra_vars
 
     return input_file_name, flags
diff --git a/modules/vagrant_generator.py b/modules/vagrant_generator.py
index dbdb6267a5ba89e602eb7253b26d2d0aa1f6f45e..2ed2e79c3b5c98010ebc041cbf38f0175321fa71 100644
--- a/modules/vagrant_generator.py
+++ b/modules/vagrant_generator.py
@@ -139,6 +139,9 @@ def _create_ansible_commands(playbook_location, input_definitions, flags):
     extravars["dictionary"] = dict()
     extravars["dictionary"]["ansible_python_interpreter"] = \
         "\"/usr/bin/python3\""
+    if "extra_vars" in flags and flags["extra_vars"]:
+        user_extra_vars = open_yaml(flags["extra_vars"])
+        extravars["dictionary"].update(user_extra_vars)
     commands.append(extravars)
 
     return commands