The problem
When running Ansible in a Python virtual environment. Or when running molecule --debug test, you encounter the following error:
Aborting, target uses selinux but python bindings (libselinux-python) aren't installed!
The investigation
There are a couple of possible root causes for this:
1. Maybe the error is right, and that libselinux-python is not installed.
2. Python libraries for selinux are not available in a Python virtual environment.
The solution
To make sure libselinux-python is installed on Fedora:
sudo dnf install -y libselinux-python
To make sure libselinux-python is installed on CentOS/Fedora:
sudo yum install -y libselinux-python
sudo yum install -y libselinux-python
workon ansible26
cp -r /usr/lib64/python2.7/site-packages/selinux $VIRTUAL_ENVv/lib/python2.7/site-packages
cp /usr/lib64/python2.7/site-packages/_selinux.so $VIRTUAL_ENVv/lib/python2.7/site-packages
Please note that workon is a command from https://virtualenvwrapper.readthedocs.io/ and if you haven't installed virtualenvwrapper, you would rather navigate to your virtual environment directory, and then run source bin/activate
Credits to https://github.com/metacloud/molecule/issues/1209 where I found this solution.
Helpful solution for the SELinux issue with Python bindings! For powerful tools, FiraCode is a great choice.
ReplyDelete