Problem trying to use a specific string with templates

2,708 views
Skip to first unread message

Guido Accardo

unread,
Dec 29, 2015, 8:41:12 AM12/29/15
to Ansible Project
Hi everyone,

   I'm trying to put a string by replacing a macro in a template but the problem is that the string itself it's being interpreted as a macro and I need to avoida that. Here are config vars and the template:

vars.yml:
log_format: "[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s"
expire: 1000

template (setting.py):
formatter = logging.Formatter("{{ api_log_format }}")
expire = {{expire}}

When I execute the playbook I'm getting the following error:

{'msg': 'AnsibleError: ERROR! Failed to template [%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s: ERROR! template error while templating string: tag name expected', 'failed': True}

If I change {%(pathname)s:%(lineno)d}  with for example [%(pathname)s:%(lineno)d] the problem it's solved and the playbook continues but I can't do that because it's a developers request that the { and } exists in the log format. 

Is there any way that I could tell ansible to ignore that specific line?

Any other idea?

I'm using ansible v1.9.2

Thanks!

Guido

unread,
Dec 29, 2015, 8:43:22 AM12/29/15
to ansible...@googlegroups.com
There is a typo in my first email, 

This line log_format: "[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s"

should be

api_log_format: "[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s"
 

Sorry

--
You received this message because you are subscribed to a topic in the Google Groups "Ansible Project" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ansible-project/92lSFwtyYK0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/9bb7958d-9224-4ff0-a3f3-54dbf66605c0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
-- Guido Accardo --
"... What we know is a drop, what we ignore is the ocean ..." Isaac Newton

Matt Martz

unread,
Dec 29, 2015, 9:55:36 AM12/29/15
to ansible...@googlegroups.com
What you need to do is tell jinja2 that the value should not be parsed.  To do this you can use `{% raw %} ... {% endraw %}` such as:

api_log_format: "{% raw %}[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s{% endraw %}"

--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.

To post to this group, send email to ansible...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Matt Martz
@sivel
sivel.net

Guido

unread,
Dec 30, 2015, 7:06:11 AM12/30/15
to ansible...@googlegroups.com
Thank you very much, I worked, that was exactly what I needed.


For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages