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
In my condition, I need install
yum
package and reconfig virtualenv with flag--system-site-packages
on target host, then use ansible environment variableansible_python_interpreter
.I find the solution, just add a python path to hosts file
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