Ansible yum module unable to find certain packages

My playbook that installs some generic applications on all of my servers:

`

  • name: Install base applications
    yum: name={{ item }} state=present
    with_items:
  • epel-release
  • vim-enhanced
  • gcc
  • wget
  • libsemanage-python
  • policycoreutils-python
  • setroubleshoot
  • tmux
    `

I get an error message for each of the following packages:
`
“msg”: “No package matching ‘libsemanage-python’ found available, installed or updated”, “rc”: 126

“msg”: “No package matching ‘policycoreutils-python’ found available, installed or updated”, “rc”: 126

“msg”: “No package matching 'setroubleshoot found available, installed or updated”, “rc”: 126

“msg”: “No package matching ‘tmux’ found available, installed or updated”, “rc”: 126
`

If I remove those packages from the item list, the install goes through fine.

I have also verified that if I manually run the following command on the remote server, it exists
yum install libsemanage-python policycoreutils-python setroubleshoot tmux

If I remove the package from the item list and install it individually, it will work:
`

  • name: Install libsemanage-python
    yum: name=libsemanage-python state=present
    `

Has anyone run into a similar scenario and figured out why it is causing this?

I’m afraid I can’t reproduce this on a CentOS 7 vm running in virtualbox. Are you using RedHat? If so, which version?

The playbook I used for reference, along with the results.

`

(duchess) [duchess@centos:jeffrey-wen] cat yum.yml

I am using Red Hat Enterprise Linux Server release 7.3 (Maipo)

I have confirmed that this does work on CentOS Linux release 7.2.1511 (Core)

However, it does not work on Red Hat Enterprise Linux Server release 7.3 (Maipo)

I have not yet had time to set up a test bed for this, but I’m planning on doing that today so I’ll update you with my results.

I can reproduce this error on a Red Hat Enterprise Linux Server 7.3 Maipo vm.

`

(duchess) [duchess@localhost:jeffrey-wen] ansible-playbook yum.yml

PLAY [Test yum module installs.] ***********************************************

TASK [setup] *******************************************************************

ok: [localhost]

TASK [Install base applications] ***********************************************

failed: [localhost] (item=[u’epel-release’, u’vim-enhanced’, u’gcc’, u’wget’, u’libsemanage-python’, u’policycoreutils-python’, u’setroubleshoot’, u’tmux’]) => {“changed”:false,“failed”:true,“item”: [“epel-release”, “vim-enhanced”, “gcc”, “wget”, “libsemanage-python”, “policycoreutils-python”, “setroubleshoot”, “tmux”], “msg”: “No package matching ‘epel-release’ found available,installed or updated”, “rc”: 126, “results”: [“No package matching ‘epel-release’ found available, installed or updated”]}

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

localhost : ok=1 changed=0 unreachable=0 failed=1

(duchess) [duchess@localhost:jeffrey-wen] ansible --version

ansible 2.2.0.0

config file = /etc/ansible/ansible.cfg

configured module search path = Default w/o overrides

(duchess) [duchess@localhost:jeffrey-wen] cat yum.yml

Hey Alexander,

Thank you so much for helping me out! However, there is still an issue with a few of the other packages.

For example: try removing epel-release from the list and watch it complain about a few of the other packages.

Isn't that because those packages are from EPEL ? You need to add the
repo in one task,
and then add the other packages in the second.

Indeed, it is not possible to install packages from the epel repo without first installing the repo in yum.

This happens on RHEL when you run the tasks as non-root user.
Just specify become and become_user in yum task to fix this issue