ansible yum not working

2020-07-10 09:18发布

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

3条回答
唯我独甜
2楼-- · 2020-07-10 09:47

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
查看更多
迷人小祖宗
3楼-- · 2020-07-10 09:57

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

ansible_python_interpreter=/usr/bin/python2.7
查看更多
做个烂人
4楼-- · 2020-07-10 10:00

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

查看更多
登录 后发表回答