Able to extract list of installed rpm using "shell" module but not with yum module

30 views
Skip to first unread message

Pawan Kumar

unread,
Jan 29, 2020, 9:05:42 AM1/29/20
to Ansible Project
Hi Team,

I am able to extract the selected list of installed rpms using ansible "shell" module ,But when I tried using "yum" module ,it's no success . 
Your help would be appreciated . 

The playbook which is running with "shell" module & it's output is as follows ---


Playbook---

---
- hosts: localhost
  tasks:
    - name: Create a list
      set_fact:
        package_list:
          - zlib
          - parted
          - gawk

    - name: Display Lists
      debug:
        msg:
         - "{{ package_list }}"


    - name: ensure a list of packages installed
      shell: rpm -qa "{{ item }}"
      with_items: "{{ package_list }}"
      register: ensure_list
      args:
        warn: false


 
    - name: show results values from ensure_list & filtering one of the key attribute called 'stdout'
      debug:
        msg: "{{ ensure_list.results | map(attribute='stdout')|list }}"





================================================Output =======================


PLAY [localhost] ********************************************************************************************************************************************

TASK [Gathering Facts] **************************************************************************************************************************************
ok: [localhost]

TASK [Create a list] ****************************************************************************************************************************************
ok: [localhost]

TASK [Display Lists] ****************************************************************************************************************************************
ok: [localhost] => {
    "msg": [
        [
            "zlib",
            "parted",
            "gawk"
        ]
    ]
}

TASK [ensure a list of packages installed] ******************************************************************************************************************
changed: [localhost] => (item=zlib)
changed: [localhost] => (item=parted)
changed: [localhost] => (item=gawk)


TASK [show results values from ensure_list] *****************************************************************************************************************
ok: [localhost] => {
    "msg": [
        "zlib-1.2.7-18.el7.x86_64",
        "parted-3.1-31.el7.x86_64",
        "gawk-4.0.2-4.el7_3.1.x86_64"
    ]
}

PLAY RECAP **************************************************************************************************************************************************
localhost                  : ok=6    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Stefan Hornburg (Racke)

unread,
Jan 29, 2020, 9:09:41 AM1/29/20
to ansible...@googlegroups.com
On 1/29/20 3:05 PM, Pawan Kumar wrote:
> Hi Team,
>
> I am able to extract the selected list of installed rpms using ansible "shell" module ,But when I tried using "yum"
> module ,it's no success . 
> Your help would be appreciated .

Hello Pawan,

what's your yum task and the error message you get from the yum module?

Regards
Racke
> --
> 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
> ansible-proje...@googlegroups.com <mailto:ansible-proje...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/5c0e4a0f-e4cb-4736-ab83-3c893052647d%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/5c0e4a0f-e4cb-4736-ab83-3c893052647d%40googlegroups.com?utm_medium=email&utm_source=footer>.


--
Ecommerce and Linux consulting + Perl and web application programming.
Debian and Sympa administration. Provisioning with Ansible.

signature.asc

Pawan Kumar

unread,
Jan 29, 2020, 10:54:31 AM1/29/20
to Ansible Project

---

- hosts: localhost

  tasks:

    - name: Create a list

      set_fact:

        package_list:

          - zlib

          - strace

          - gawk

 

    - name: Display Lists

      debug:

        msg:

         - "{{ package_list }}"

 

 

    - name: Create an empty list variable

      set_fact:

        list1: []

 

    - name: Append string to ECE node list

      set_fact:

        list1: "{{ list1 + [ item ] }}"

      with_items:

        - "{{ package_list }}"

 

 

    - name: ensure a list of packages installed

      yum:

        list: "{{ item }}"

      with_items: "{{ list1 }}"

      register: ensure_list

 

    - name: Debug the list of installed rpms

      debug:

        msg: "{{ ensure_list }}"

 

    - name: Conditionally print things if not installed

      set_fact:

        list_desired: "{{ ensure_list.results | map(attribute='results') | list }}"

      when: ensure_list.results is defined and ensure_list.results != ''

 

    - name: Extract teh dEsired data of rpm version and state

      debug:

        msg: "{{ list_desired | selectattr('yumstate','equalto','installed') | map(attribute='envra') | list  }}"

 

 

PLAY [localhost] ****************************************************************************************************************************************************************************

 

TASK [Gathering Facts] **********************************************************************************************************************************************************************

ok: [localhost]

 

TASK [Create a list] ************************************************************************************************************************************************************************

ok: [localhost]

 

TASK [Display Lists] ************************************************************************************************************************************************************************

ok: [localhost] => {

    "msg": [

        [

            "zlib",

            "strace",

            "gawk"

        ]

    ]

}

 

TASK [Create an empty list variable] ********************************************************************************************************************************************************

ok: [localhost]

 

TASK [Append string to ECE node list] *******************************************************************************************************************************************************

ok: [localhost] => (item=zlib)

ok: [localhost] => (item=strace)

ok: [localhost] => (item=gawk)

 

TASK [ensure a list of packages installed] **************************************************************************************************************************************************

ok: [localhost] => (item=zlib)

ok: [localhost] => (item=strace)

ok: [localhost] => (item=gawk)

 

TASK [Debug the list of installed rpms] *****************************************************************************************************************************************************

ok: [localhost] => {

    "msg": {

        "changed": false,

        "msg": "All items completed",

        "results": [

            {

                "ansible_loop_var": "item",

                "changed": false,

                "failed": false,

                "invocation": {

                    "module_args": {

                        "allow_downgrade": false,

                        "autoremove": false,

                        "bugfix": false,

                        "conf_file": null,

                        "disable_excludes": null,

                        "disable_gpg_check": false,

                        "disable_plugin": [],

                        "disablerepo": [],

                        "download_dir": null,

                        "download_only": false,

                        "enable_plugin": [],

                        "enablerepo": [],

                        "exclude": [],

                        "install_repoquery": true,

                        "install_weak_deps": true,

                        "installroot": "/",

                        "list": "zlib",

                        "lock_timeout": 30,

                        "name": [],

                        "releasever": null,

                        "security": false,

                        "skip_broken": false,

                        "state": null,

                        "update_cache": false,

                        "update_only": false,

                        "use_backend": "auto",

                        "validate_certs": true

                    }

                },

                "item": "zlib",

                "results": [

                    {

                        "arch": "i686",

                        "envra": "0:zlib-1.2.7-18.el7.i686",

                        "epoch": "0",

                        "name": "zlib",

                        "release": "18.el7",

                        "repo": "base",

                        "version": "1.2.7",

                        "yumstate": "available"

                    },

                    {

                        "arch": "x86_64",

                        "envra": "0:zlib-1.2.7-18.el7.x86_64",

                        "epoch": "0",

                        "name": "zlib",

                        "release": "18.el7",

                        "repo": "base",

                        "version": "1.2.7",

                        "yumstate": "available"

                    },

                    {

                        "arch": "x86_64",

                        "envra": "0:zlib-1.2.7-18.el7.x86_64",

                        "epoch": "0",

                        "name": "zlib",

                        "release": "18.el7",

                        "repo": "installed",

                        "version": "1.2.7",

                        "yumstate": "installed"

                    }

                ]

            },

            {

                "ansible_loop_var": "item",

                "changed": false,

                "failed": false,

                "invocation": {

                    "module_args": {

                        "allow_downgrade": false,

                        "autoremove": false,

                        "bugfix": false,

                        "conf_file": null,

                        "disable_excludes": null,

                        "disable_gpg_check": false,

                        "disable_plugin": [],

                        "disablerepo": [],

                        "download_dir": null,

                        "download_only": false,

                        "enable_plugin": [],

                        "enablerepo": [],

                        "exclude": [],

                        "install_repoquery": true,

                        "install_weak_deps": true,

                        "installroot": "/",

                        "list": "strace",

                        "lock_timeout": 30,

                        "name": [],

                        "releasever": null,

                        "security": false,

                        "skip_broken": false,

                        "state": null,

                        "update_cache": false,

                        "update_only": false,

                        "use_backend": "auto",

                        "validate_certs": true

                    }

                },

                "item": "strace",

                "results": [

                    {

                        "arch": "x86_64",

                        "envra": "0:strace-4.12-9.el7.x86_64",

                        "epoch": "0",

                        "name": "strace",

                        "release": "9.el7",

                        "repo": "base",

                        "version": "4.12",

                        "yumstate": "available"

                    },

                    {

                        "arch": "x86_64",

                        "envra": "0:strace-4.12-9.el7.x86_64",

                        "epoch": "0",

                        "name": "strace",

                        "release": "9.el7",

                        "repo": "installed",

                        "version": "4.12",

                        "yumstate": "installed"

                    }

                ]

            },

            {

                "ansible_loop_var": "item",

                "changed": false,

                "failed": false,

                "invocation": {

                    "module_args": {

                        "allow_downgrade": false,

                        "autoremove": false,

                        "bugfix": false,

                        "conf_file": null,

                        "disable_excludes": null,

                        "disable_gpg_check": false,

                        "disable_plugin": [],

                        "disablerepo": [],

                        "download_dir": null,

                        "download_only": false,

                        "enable_plugin": [],

                        "enablerepo": [],

                        "exclude": [],

                        "install_repoquery": true,

                        "install_weak_deps": true,

                        "installroot": "/",

                        "list": "gawk",

                        "lock_timeout": 30,

                        "name": [],

                        "releasever": null,

                        "security": false,

                        "skip_broken": false,

                        "state": null,

                        "update_cache": false,

                        "update_only": false,

                        "use_backend": "auto",

                        "validate_certs": true

                    }

                },

                "item": "gawk",

                "results": [

                    {

                        "arch": "x86_64",

                        "envra": "0:gawk-4.0.2-4.el7_3.1.x86_64",

                        "epoch": "0",

                        "name": "gawk",

                        "release": "4.el7_3.1",

                        "repo": "base",

                        "version": "4.0.2",

                        "yumstate": "available"

                    },

                    {

                        "arch": "x86_64",

                        "envra": "0:gawk-4.0.2-4.el7_3.1.x86_64",

                        "epoch": "0",

                        "name": "gawk",

                        "release": "4.el7_3.1",

                        "repo": "installed",

                        "version": "4.0.2",

                        "yumstate": "installed"

                    }

                ]

            }

        ]

    }

}

 

TASK [Conditionally print things if not installed] ******************************************************************************************************************************************

ok: [localhost]

 

TASK [Extract teh dEsired data of rpm version and state] ************************************************************************************************************************************

fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'list object' has no attribute 'yumstate'\n\nThe error appears to be in '/opt/tmo_iam/ansible_python27/.venv/rpm_package_raka.yml': line 43, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n    - name: Extract teh dEsired data of rpm version and state\n      ^ here\n"}

 

PLAY RECAP **********************************************************************************************************************************************************************************

localhost                  : ok=8    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

Pawan Kumar

unread,
Jan 30, 2020, 11:25:09 PM1/30/20
to Ansible Project
Hi Team,

May i get some response to this issue . 
Hopefully I am able to explain the problem .

warm regards
Pawan kumar
Reply all
Reply to author
Forward
0 new messages