Passing Dictionaries of Dictonaries in Ansible

I wanted to simulate the JINJA template bheaviour using set_facts for WIndows Patching using Ansible. I am doing the below however, getting error
Sorry New to Ansible here. Attcahed Screenshots.

  • name: Sample Dictionary for Windows Update Patches
    set_fact:
  • dict_updates:
  • {‘key’: ‘e0951aaf’, ‘value’: {‘title’: ‘Windows KB5017396’, ‘kb’: [‘5017396’], ‘categories’: [‘Security Updates’, ‘Windows Server 2016’], ‘id’: ‘e0951aaf’, ‘downloaded’: True, ‘installed’: True},
    {‘key’: ‘e0951aed’, ‘value’: {‘title’: ‘Windows KB5012356’, ‘kb’: [‘5012356’], ‘categories’: [‘Security Updates’, ‘Windows Server 2019’], ‘id’: ‘e0951aed’, ‘downloaded’: True, ‘installed’: True},
    {‘key’: ‘e0761aag’, ‘value’: {‘title’: ‘Windows KB5016326’, ‘kb’: [‘5016326’], ‘categories’: [‘Security Updates’, ‘Windows Server 2022’], ‘id’: ‘e0761aag’, ‘downloaded’: True, ‘installed’: True},
    {‘key’: ‘e0911aae’, ‘value’: {‘title’: ‘Windows KB5013397’, ‘kb’: [‘5013397’], ‘categories’: [‘Security Updates’, ‘Windows Server 2016’], ‘id’: ‘e0911aae’, ‘downloaded’: True, ‘installed’: True},}

Not in situation to run whole playbook for getting these values automatically for testing JINJA template

You don’t say what error you are getting, but you have 8 open braces (“{”) and 5 close braces (“}”), so errors are not surprising.

The error even after fixing braces, ERROR! unexpected parameter type in action: <class ‘ansible.parsing.yaml.objects.AnsibleSequence’>

Also check your indentation. set_fact should align with name.

Walter

Thanks you walter, however, no errors found, if i am keeping only one dictonary, problems is coming with dictioanry containing multiple dicotnaries.


The above contains only one screenshot.

But you didn’t show us — and by “show” I mean copy-n-paste the text, not a picture of — the input. If you’re going to show us errors and not what produced them, and then have us ask you to show us your inputs every time, this is going to take hours.

Email is cheap. Please include all relevant input, “relevant” meaning complete enough so we can run it ourselves, not just what you think must contain the problem. Because if you knew what the problem was, you’d fix it yourself and not need to ask. Far better to include more than less.

Hello Todd,
Thanks for you reply. Now I have changed this, executing fine. Attached for your references. Only intention is to simulate input values to JINJA template.

https://goonlinetools.com/snapshot/code/#x0mvce2zjkau2vgfznpaa (or)
https://codefile.io/f/wI9DQJIgClyFm0EsYiUP