On Tue, 9 May 2017, Trond Hindenes wrote:

Hope someone can help me shed some light on this one:

Since Ansible is python-based, us Windows dudes generally have to stick an
extra backslash anywhere we're manipulating Windows paths. However, in some
cases this causes unexpected behavior. In my current case, I need to inject
a file path into a json file on a Windows box. This path is defined as such
in an Ansible var:
logfiles_path: "F:\\Logs"

In my template json file I add to this path, using the following:

"FilePath":"{{ logfiles_path }}\\*",

The goal is to populate the target json with
"F:\\Logs\\*"

However, since Ansible kicks in the resulting file contains:
"F:\Logfiles\\*"

In other words, Ansible "normalises" the part of the path that comes from a
variable, but not the part "outside" of the variable.

I'm not sure what the best way to solve this is - it would be great to have
some builtin filters that would do "json normalization" of a string or
something. How are people solving this?

I stick to using single backslashes (and not quotes) in YAML, or single quotes if you have to. And single quotes everywhere else. I never had the need to use double-backslashes.

I remember one issues (with YAML?), which is when using a trailing backslash. So I taught myself not to do this for Windows paths :-)

It would be nice to document these best-practices as part of the Ansible Windows documentation once we have determined what's best.

--
Dag

--
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/alpine.LRH.2.20.1705091357180.19483%40pikachu.3ti.be.
For more options, visit https://groups.google.com/d/optout.

Reply via email to