diff --git a/docsite/rst/playbooks_lookups.rst b/docsite/rst/playbooks_lookups.rst index d0e8e76a378..25560e284d4 100644 --- a/docsite/rst/playbooks_lookups.rst +++ b/docsite/rst/playbooks_lookups.rst @@ -273,6 +273,10 @@ Here are some examples:: - debug: msg="{{ lookup('template', './some_template.j2') }} is a value from evaluation of this template" + # loading a json file from a template as a string + - debug: msg="{{ lookup('template', './some_json.json.j2', convert_data=False) }} is a value from evaluation of this template" + + - debug: msg="{{ lookup('etcd', 'foo') }} is a value from a locally running etcd" # shelvefile lookup retrieves a string value corresponding to a key inside a Python shelve file diff --git a/lib/ansible/plugins/lookup/template.py b/lib/ansible/plugins/lookup/template.py index 569ede6276f..2ca2e5673bf 100644 --- a/lib/ansible/plugins/lookup/template.py +++ b/lib/ansible/plugins/lookup/template.py @@ -34,6 +34,7 @@ class LookupModule(LookupBase): def run(self, terms, variables, **kwargs): + convert_data_p = kwargs.get('convert_data', True) basedir = self.get_basedir(variables) ret = [] @@ -53,7 +54,7 @@ class LookupModule(LookupBase): searchpath.insert(1, variables['role_path']) self._templar.environment.loader.searchpath = searchpath - res = self._templar.template(template_data, preserve_trailing_newlines=True) + res = self._templar.template(template_data, preserve_trailing_newlines=True,convert_data=convert_data_p) ret.append(res) else: raise AnsibleError("the template file %s could not be found for the lookup" % term)