ansible yum not working

2020-07-10 09:42发布

问题:

when i run command on the ops machine:

ansible web -b -l 192.168.31.101 -m yum -a "name=gcc state=latest"

it returns error shows below:

192.168.31.101 | FAILED! => {
    "changed": false,
    "failed": true,
    "msg": "python2 bindings for rpm are needed for this module. python2 yum module is needed for this  module" 
}

but when i execute the command sudo yum install gcc directly on 192.168.31.101, executed properly.

it seems like ansible can't use the right yum and python

回答1:

I find the solution, just add a python path to hosts file

ansible_python_interpreter=/usr/bin/python2.7


回答2:

this happened to me because i had python2.7 and python3 installed on my machin. ansible was using python3 and thus the error. so I had to explicitly specify it like below in my makefile target /bin/python2.7 /bin/ansible-playbook configure-box.yml



回答3:

In my condition, I need install yum package and reconfig virtualenv with flag --system-site-packages on target host, then use ansible environment variable ansible_python_interpreter.

yum install yum
virtualenv --system-site-packages venv