Extract values from a list of dictionaries in Ansible
12:38 16 May 2022

I have this playbook and I need to find a way to display the values of the list of dictionaries under prerequisite knowing that we have different key names. how can I display theses values keeping the same syntax of my playbook?

Expected output:

"linux/mysql/8.0.19/prerequis/mysql-community-common-8.0.19-1.el7.x86_64.rpm"
"mysql-community-common-8.0.19-1.el7.x86_64"
"linux/mysql/8.0.19/prerequis/mysql-community-libs-8.0.19-1.el7.x86_64.rpm"
"mysql-community-libs-8.0.19-1.el7.x86_64"
"linux/mysql/8.0.19/prerequis/mysql-community-client-8.0.11-1.el7.x86_64.rpm"
"mysql-community-client-8.0.11-1.el7.x86_64"
"linux/mysql/8.0.19/prerequis/mysql-shell-8.0.19-1.el7.x86_64.rpm"
"mysql-shell-8.0.19-1.el7.x86_64"

- name: "extract values from a list of dictionaries"
 hosts: localhost
 tasks:
 - name: "adding variables"
   set_fact:
     products:
       mysql_8_0_19:
         CentOS_7:
           signature: "mysql-community-server-8.0.19-1.el7.x86_64"
           url: "linux/mysql/8.0.19/mysql-community-server-8.0.19-1.el7.x86_64.rpm"
         pymysql_url: "linux/mysql/8.0.19/prerequis/PyMySQL-0.9.3.tar.gz"
         prerequisite:
         - mysql_c_common_url: "linux/mysql/8.0.19/prerequis/mysql-community-common-8.0.19-1.el7.x86_64.rpm"
           mysql_c_common_signature: "mysql-community-common-8.0.19-1.el7.x86_64"
         - mysql_c_libs_url: "linux/mysql/8.0.19/prerequis/mysql-community-libs-8.0.19-1.el7.x86_64.rpm"
           mysql_c_libs_signature: "mysql-community-libs-8.0.19-1.el7.x86_64"
         - mysql_c_client_url: "linux/mysql/8.0.19/prerequis/mysql-community-client-8.0.11-1.el7.x86_64.rpm"
           mysql_c_client_signature: "mysql-community-client-8.0.11-1.el7.x86_64"
         - mysql_shell_url: "linux/mysql/8.0.19/prerequis/mysql-shell-8.0.19-1.el7.x86_64.rpm"
           mysql_shell_signature: "mysql-shell-8.0.19-1.el7.x86_64"

 - name: " display "
   debug:
     msg: "{{ item }}"
   with_items: "{{ products.mysql_8_0_19.prerequisite }}"'
list loops dictionary ansible jinja2