I have a large number of YAML files prepared manually which have a fixed
structure - list of dictionaries. But within different files, sequence of
these keys and their values differ. I need to manage them automatically, so
i am writing a kind of converter to add marker blocks. But i am stuck at
this point:
example input YAML file
#something
keyA:
A1:
- bla
- bla
A2: bla bla
A3:
A3.1: bla
A3.2: bla
keyA:
C1:
- bla
C2: bla bla
C3:
C3.1: bla
keyB:
B1:
- bla
- bla
B2: bla bla
B3:
B3.1: bla
B3.2: bla
B3.3: bla
B4:
- bla
- bla
playbook to load one of the YAML, and try to write the same variables again
with markers appended
- include_vars:
file: "path to one of the YAML file"
name: yamlVars
- template:
src: updated.yaml.j2
dest: "path to that same file"
the template
{% for key, value in yamlVars.iteritems() %}
# BEGIN BLOCK {{ key }}
{{ value | to_nice_yaml }}
# END BLOCK {{ key }}
{% endfor %}
Poblem is, always the contents of each key is printed:
(manually prepared output to hide my variables)
actual output
# BEGIN BLOCK keyA
A1:
- bla
- bla
A2: bla bla
A3:
A3.1: bla
A3.2: bla
# END BLOCK keyA
# BEGIN BLOCK keyC
C1:
- bla
C2: bla bla
C3:
C3.1: bla
# END BLOCK keyC
# BEGIN BLOCK keyB
B1:
- bla
- bla
B2: bla bla
B3:
B3.1: bla
B3.2: bla
B3.3: bla
B4:
- bla
- bla
# END BLOCK keyB
expected output
# BEGIN BLOCK keyA
keyA:
A1:
- bla
- bla
A2: bla bla
A3:
A3.1: bla
A3.2: bla
# END BLOCK keyA
# BEGIN BLOCK keyC
keyC:
C1:
- bla
C2: bla bla
C3:
C3.1: bla
# END BLOCK keyC
# BEGIN BLOCK keyB
keyB:
B1:
- bla
- bla
B2: bla bla
B3:
B3.1: bla
B3.2: bla
B3.3: bla
B4:
- bla
- bla
# END BLOCK keyB
--
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/9a06be57-73b2-4459-88f4-9ffb4a8ef4c6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.