def build_args(parsed_args, playbooks, extra_vars=None, limit=None, tags=None, verbose_level=None, check=None): """Build arguments required for running Ansible playbooks.""" cmd = ["ansible-playbook"] if verbose_level: cmd += ["-" + "v" * verbose_level] if parsed_args.list_tasks: cmd += ["--list-tasks"] cmd += vault.build_args(parsed_args) inventory = _get_inventory_path(parsed_args) cmd += ["--inventory", inventory] vars_files = _get_vars_files(parsed_args.config_path) for vars_file in vars_files: cmd += ["-e", "@%s" % vars_file] if parsed_args.extra_vars: for extra_var in parsed_args.extra_vars: cmd += ["-e", extra_var] if extra_vars: for extra_var_name, extra_var_value in extra_vars.items(): cmd += ["-e", "%s=%s" % (extra_var_name, extra_var_value)] if parsed_args.become: cmd += ["--become"] if check or (parsed_args.check and check is None): cmd += ["--check"] if parsed_args.limit or limit: limits = [l for l in [parsed_args.limit, limit] if l] cmd += ["--limit", ":&".join(limits)] if parsed_args.skip_tags: cmd += ["--skip-tags", parsed_args.skip_tags] if parsed_args.tags or tags: all_tags = [t for t in [parsed_args.tags, tags] if t] cmd += ["--tags", ",".join(all_tags)] cmd += playbooks return cmd
def build_args(parsed_args, playbooks, extra_vars=None, limit=None, tags=None, verbose_level=None, check=None, ignore_limit=False, list_tasks=None, diff=None): """Build arguments required for running Ansible playbooks.""" cmd = ["ansible-playbook"] if verbose_level: cmd += ["-" + "v" * verbose_level] if list_tasks or (parsed_args.list_tasks and list_tasks is None): cmd += ["--list-tasks"] cmd += vault.build_args(parsed_args, "--vault-password-file") env_path = _get_kayobe_environment_path(parsed_args) inventories = _get_inventories_paths(parsed_args, env_path) for inventory in inventories: cmd += ["--inventory", inventory] vars_paths = [parsed_args.config_path] if env_path: vars_paths.append(env_path) vars_files = _get_vars_files(vars_paths) for vars_file in vars_files: cmd += ["-e", "@%s" % vars_file] if parsed_args.extra_vars: for extra_var in parsed_args.extra_vars: # Don't quote or escape variables passed via the kayobe -e CLI # argument, to match Ansible's behaviour. cmd += ["-e", extra_var] if extra_vars: for extra_var_name, extra_var_value in extra_vars.items(): # Quote and escape variables originating within the python CLI. extra_var_value = utils.quote_and_escape(extra_var_value) cmd += ["-e", "%s=%s" % (extra_var_name, extra_var_value)] if parsed_args.become: cmd += ["--become"] if check or (parsed_args.check and check is None): cmd += ["--check"] if diff or (parsed_args.diff and diff is None): cmd += ["--diff"] if not ignore_limit and (parsed_args.limit or limit): limit_arg = utils.intersect_limits(parsed_args.limit, limit) cmd += ["--limit", limit_arg] if parsed_args.skip_tags: cmd += ["--skip-tags", parsed_args.skip_tags] if parsed_args.tags or tags: all_tags = [t for t in [parsed_args.tags, tags] if t] cmd += ["--tags", ",".join(all_tags)] cmd += playbooks return cmd
def build_args(parsed_args, command, inventory_filename, extra_vars=None, tags=None, verbose_level=None, extra_args=None, limit=None): """Build arguments required for running Kolla Ansible.""" venv_activate = os.path.join(parsed_args.kolla_venv, "bin", "activate") cmd = [".", venv_activate, "&&"] cmd += ["kolla-ansible", command] if verbose_level: cmd += ["-" + "v" * verbose_level] cmd += vault.build_args(parsed_args, "--key") inventory = _get_inventory_path(parsed_args, inventory_filename) cmd += ["--inventory", inventory] if parsed_args.kolla_config_path != DEFAULT_CONFIG_PATH: cmd += ["--configdir", parsed_args.kolla_config_path] cmd += [ "--passwords", os.path.join(parsed_args.kolla_config_path, "passwords.yml") ] if parsed_args.kolla_extra_vars: for extra_var in parsed_args.kolla_extra_vars: # Don't quote or escape variables passed via the kayobe -e CLI # argument, to match Ansible's behaviour. cmd += ["-e", extra_var] if extra_vars: for extra_var_name, extra_var_value in extra_vars.items(): # Quote and escape variables originating within the python CLI. extra_var_value = utils.quote_and_escape(extra_var_value) cmd += ["-e", "%s=%s" % (extra_var_name, extra_var_value)] if parsed_args.kolla_limit or limit: limit_arg = utils.intersect_limits(parsed_args.kolla_limit, limit) cmd += ["--limit", utils.quote_and_escape(limit_arg)] if parsed_args.kolla_skip_tags: cmd += ["--skip-tags", parsed_args.kolla_skip_tags] if parsed_args.kolla_tags or tags: all_tags = [t for t in [parsed_args.kolla_tags, tags] if t] cmd += ["--tags", ",".join(all_tags)] if extra_args: cmd += extra_args return cmd
def build_args(parsed_args, playbooks, extra_vars=None, limit=None, tags=None, verbose_level=None, check=None): """Build arguments required for running Ansible playbooks.""" cmd = ["ansible-playbook"] if verbose_level: cmd += ["-" + "v" * verbose_level] if parsed_args.list_tasks: cmd += ["--list-tasks"] cmd += vault.build_args(parsed_args, "--vault-password-file") inventory = _get_inventory_path(parsed_args) cmd += ["--inventory", inventory] vars_files = _get_vars_files(parsed_args.config_path) for vars_file in vars_files: cmd += ["-e", "@%s" % vars_file] if parsed_args.extra_vars: for extra_var in parsed_args.extra_vars: # Don't quote or escape variables passed via the kayobe -e CLI # argument, to match Ansible's behaviour. cmd += ["-e", extra_var] if extra_vars: for extra_var_name, extra_var_value in extra_vars.items(): # Quote and escape variables originating within the python CLI. extra_var_value = utils.quote_and_escape(extra_var_value) cmd += ["-e", "%s=%s" % (extra_var_name, extra_var_value)] if parsed_args.become: cmd += ["--become"] if check or (parsed_args.check and check is None): cmd += ["--check"] if parsed_args.limit or limit: limits = [l for l in [parsed_args.limit, limit] if l] cmd += ["--limit", ":&".join(limits)] if parsed_args.skip_tags: cmd += ["--skip-tags", parsed_args.skip_tags] if parsed_args.tags or tags: all_tags = [t for t in [parsed_args.tags, tags] if t] cmd += ["--tags", ",".join(all_tags)] cmd += playbooks return cmd