我正在尝试运行Ansible剧本命令,并得到如下错误。
致命: localhost: FAILED!=> {"changed":false,"msg":“中止,目标使用selinux,但是python绑定(libselinux-python)没有安装!”}
当我检查libselinux-python时,它已经可用了。
[root@host all]# sudo yum list installed |grep libselinux-python
libselinux-python3.x86_64 2.5-15.el7 @rhel-7-server-rpms如果有人遇到并解决了这个问题,请提供您的意见。
下面是安装在服务器上的Python和Ansible版本。
[root@ xxx bin]# python --version
Python 3.6.5
[root@xxx bin]# which python
/root/.pyenv/shims/python
[root@xxx bin]# ansible --version
ansible 2.9.9
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /root/.pyenv/versions/3.6.5/lib/python3.6/site-packages/ansible
executable location = /root/.pyenv/versions/3.6.5/bin/ansible
python version = 3.6.5 (default, Jun 18 2020, 17:32:20) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
[root@ xxx bin]#发布于 2020-08-03 16:25:47
我在这上面浪费了整整一天,我成功地解决了运行sudo yum install libselinux-python3的问题
发布于 2020-11-02 08:26:42
或者,也可以在当前Python:pip install selinux中安装selinux。
发布于 2020-10-24 12:14:11
下面是我为解决这个问题所做的工作。
对于RHEL上的Python3,您可以使用
sudo yum install -y libselinux-python3然后创建一个虚拟环境来隔离您的依赖关系,并允许它访问目录:
python3 -m venv .venv --system-site-packages如果不使用--system-site-packages,您的虚拟环境将无法访问selinux,因为它位于/usr/lib64/python3.6/site-packages中。
然后激活这个虚拟环境并运行您的ansible剧本命令:
source .venv/bin/activate
ansible-playbook -i my_inventory my_playbook.yml -vvv
deactivate修改PYTHONPATH通常是错误的做法,如下面的一个答案所示,尽管它可以工作。
https://stackoverflow.com/questions/63173955
复制相似问题