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.
