diff --git a/modules/vagrant_generator.py b/modules/vagrant_generator.py index 2ed2e79c3b5c98010ebc041cbf38f0175321fa71..dac0359c59dcdb141176090fa3de6cef95458df7 100644 --- a/modules/vagrant_generator.py +++ b/modules/vagrant_generator.py @@ -133,15 +133,23 @@ def _create_ansible_commands(playbook_location, input_definitions, flags): install_mode["value"] = "pip" commands.append(install_mode) + if "extra_vars" in flags and flags["extra_vars"]: + if "ansible_local" in flags and flags["ansible_local"]: + extra_vars_location = "/vagrant/extra_vars.yml" + else: + extra_vars_location = flags["ansible_local"] + user_extra_vars = dict() + user_extra_vars["type"] = "string" + user_extra_vars["command"] = "raw_arguments" + user_extra_vars["value"] = "--extra-vars=@" + extra_vars_location + commands.append(user_extra_vars) + extravars = dict() extravars["type"] = "dictionary" extravars["command"] = "extra_vars" 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 @@ -187,6 +195,25 @@ 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"]: + copy_extra_vars = dict() + copy_extra_vars["type"] = "provision" + copy_extra_vars["provisioner"] = "file" + copy_extra_vars["note"] = "copy extra_vars to target machine" + + source_arg = dict() + source_arg["type"] = "string" + source_arg["command"] = "source" + source_arg["value"] = flags["extra_vars"] + destination_arg = dict() + destination_arg["type"] = "string" + destination_arg["command"] = "destination" + destination_arg["value"] = "/vagrant/extra_vars.yml" + 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"]: