def bake(self): """ Bake an ``ansible-playbook`` command so it's ready to execute and \ returns ``None``. :return: None """ if not self._playbook: return # Pass a directory as inventory to let Ansible merge the multiple # inventory sources located under self.add_cli_arg("inventory", self._config.provisioner.inventory_directory) options = util.merge_dicts(self._config.provisioner.options, self._cli) verbose_flag = util.verbose_flag(options) if self._playbook != self._config.provisioner.playbooks.converge: if options.get("become"): del options["become"] # We do not pass user-specified Ansible arguments to the create and # destroy invocations because playbooks involved in those two # operations are not always provided by end users. And in those cases, # custom Ansible arguments can break the creation and destruction # processes. # # If users need to modify the creation of deletion, they can supply # custom playbooks and specify them in the scenario configuration. if self._config.action not in ["create", "destroy"]: ansible_args = list(self._config.provisioner.ansible_args) + list( self._config.ansible_args) else: ansible_args = [] self._ansible_command = util.BakedCommand( cmd=[ "ansible-playbook", *util.dict2args(options), *util.bool2args(verbose_flag), *ansible_args, self._playbook, # must always go last ], cwd=self._config.scenario.directory, env=self._env, )
def bake(self): """ Bake an ``ansible-playbook`` command so it's ready to execute and \ returns ``None``. :return: None """ if not self._playbook: return # Pass a directory as inventory to let Ansible merge the multiple # inventory sources located under self.add_cli_arg("inventory", self._config.provisioner.inventory_directory) options = util.merge_dicts(self._config.provisioner.options, self._cli) verbose_flag = util.verbose_flag(options) if self._playbook != self._config.provisioner.playbooks.converge: if options.get("become"): del options["become"] ansible_args = list(self._config.provisioner.ansible_args) + list( self._config.ansible_args) # if ansible_args: # if self._config.action not in ["create", "destroy"]: # # inserts ansible_args at index 1 # self._ansible_command.cmd.extend(ansible_args) self._ansible_command = util.BakedCommand( cmd=[ "ansible-playbook", *util.dict2args(options), *util.bool2args(verbose_flag), *ansible_args, self._playbook, # must always go last ], cwd=self._config.scenario.directory, env=self._env, stdout=self._out, stderr=self._err, )