From 9f7f5b98970e9a48f703714e1dbf6fdda46cab5d Mon Sep 17 00:00:00 2001 From: Attila Farkas <394097@mail.muni.cz> Date: Mon, 14 Jun 2021 23:18:31 +0200 Subject: [PATCH] Include Ansible requirements file if present --- cyber_sandbox_creator/input_parser/sandbox.py | 5 +++++ cyber_sandbox_creator/vagrant_generator/vagrantfile.py | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/cyber_sandbox_creator/input_parser/sandbox.py b/cyber_sandbox_creator/input_parser/sandbox.py index 2565173..db41e4c 100644 --- a/cyber_sandbox_creator/input_parser/sandbox.py +++ b/cyber_sandbox_creator/input_parser/sandbox.py @@ -128,6 +128,11 @@ class Sandbox: self.ansible_installed: bool = ansible_installed self.verbose_ansible: bool = verbose_ansible self.user_provisioning_dir: Optional[Path] = user_provisioning_dir + if self.user_provisioning_dir is not None: + self.include_requirements: bool = (self.user_provisioning_dir / + "requirements.yml").is_file() + else: + self.include_requirements: bool = False self.extra_vars: Optional[Path] = extra_vars_file self.config: Dict = Reader.open_yaml(configuration_path) self.flavors: List[Flavor] = self._load_flavors(flavors_path) diff --git a/cyber_sandbox_creator/vagrant_generator/vagrantfile.py b/cyber_sandbox_creator/vagrant_generator/vagrantfile.py index 9f35afd..18b167f 100644 --- a/cyber_sandbox_creator/vagrant_generator/vagrantfile.py +++ b/cyber_sandbox_creator/vagrant_generator/vagrantfile.py @@ -113,6 +113,15 @@ class Vagrantfile: if sandbox.extra_vars is not None: attributes.append(String("extra_vars", sandbox.config["user_extra_vars"])) + if sandbox.include_requirements: + attributes.append(String("galaxy_role_file", + "provisioning/requirements.yml")) + attributes.append(String("galaxy_roles_path", "provisioning/roles")) + attributes.append(String("galaxy_command", + "sudo ansible-galaxy install --role-file=" + "%{role_file} --roles-path=%{roles_path} " + "--force")) + return attributes @staticmethod -- GitLab