diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py index 01cb30fa919..c539162778c 100644 --- a/lib/ansible/playbook/play.py +++ b/lib/ansible/playbook/play.py @@ -21,6 +21,7 @@ from ansible.utils.template import template from ansible import utils from ansible import errors from ansible.playbook.task import Task +import pipes import shlex import os @@ -185,13 +186,13 @@ class Play(object): if not os.path.isfile(task) and not os.path.isfile(handler) and not os.path.isfile(vars_file) and not os.path.isdir(library): raise errors.AnsibleError("found role at %s, but cannot find %s or %s or %s or %s" % (path, task, handler, vars_file, library)) if os.path.isfile(task): - nt = dict(include=task, vars=has_dict) + nt = dict(include=pipes.quote(task), vars=has_dict) for k in special_keys: if k in special_vars: nt[k] = special_vars[k] new_tasks.append(nt) if os.path.isfile(handler): - nt = dict(include=handler, vars=has_dict) + nt = dict(include=pipes.quote(handler), vars=has_dict) for k in special_keys: if k in special_vars: nt[k] = special_vars[k]