How to convert a dictionary of dictionaries into a list of dictionaries in a Ansible vars file?

18,062

{{ postgres_users.values() | list }} seems to do it.

Share:
18,062
Jeff Widman
Author by

Jeff Widman

Website: http://jeffwidman.com GitHub: https://github.com/jeffwidman LinkedIn: https://linkedin.com/in/jeffwidman

Updated on June 17, 2022

Comments

  • Jeff Widman
    Jeff Widman almost 2 years

    Within an Ansible vars file, I want to convert a dict of dicts into a list of dicts that I can pass to an external role from Ansible Galaxy.

    Input:

    postgres_users:
      dc1:
        name: user_dc1
        password: pass_dc1
      dc2:
        name: user_dc2
        password: pass_dc2
      dc3:
        name: user_dc3
        password: pass_dc3
    

    Desired output:

    postgres_users:
      - name: user_dc1
        password: pass_dc1
      - name: user_dc2
        password: pass_dc2
      - name: user_dc3
        password: pass_dc3
    

    Is there a simple way to do this within an Ansible vars file?