Ansible Yum不工作

8
当我在 ops 机器上运行命令时:
ansible web -b -l 192.168.31.101 -m yum -a "name=gcc state=latest"

它返回以下错误:

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" 
}

但是当我直接在192.168.31.101上执行命令sudo yum install gcc时,它可以被成功执行。

看起来ansible无法使用正确的yum和python。


尝试使用-m package而不是-m yum。它应该适用于各种软件包管理器。我认为yum将被DNF取代。https://en.wikipedia.org/wiki/Dnf_(Fedora)。也许最新的CentOS镜像中不再默认安装yum Python模块? - Håken Lid
3个回答

8
我找到了解决方案,只需要将Python路径添加到hosts文件中。
ansible_python_interpreter=/usr/bin/python2.7

0
在我的情况下,我需要在目标主机上安装yum包并使用标志--system-site-packages重新配置虚拟环境,然后使用Ansible环境变量ansible_python_interpreter
yum install yum
virtualenv --system-site-packages venv

你可能是想说 pip install yum 吧? - Mort

0

这种情况发生在我机器上,因为我同时安装了Python2.7和Python3。Ansible使用的是Python3,因此出现了错误。 所以我不得不在我的Makefile目标中明确指定它,像下面这样: /bin/python2.7 /bin/ansible-playbook configure-box.yml


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接