I am trying to install Ansible on CentOS 7, and have Ansible configured to use Python 3. I've both Python2 and Python3 installed.
[root@ansible1 ~]# python --version Python 2.7.5 [root@ansible1 ~]# python3 --version Python 3.6.8
If I install Ansible using
yum install ansible, the
ansible --version command shows that Ansible is configured to use Python 2.7.5. I uninstall ansible (
yum remove ansible);
[root@ansible1 ~]# ansible --version ansible 2.9.10 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /bin/ansible python version = 2.7.5 (default, Aug 7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
The easiest way to run /usr/bin/ansible under Python 3 is to install it with the Python3 version of pip. This will make the default /usr/bin/ansible run with Python3
I have version 9.0.3 of pip installed.
[root@ansible1 ~]# pip3 --version pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
Following Ansibles documentation, I issue
pip3 install ansible to install Ansible using pip3.
[root@ansible1 ~]# pip3 install ansible WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead. Collecting ansible Using cached https://files.pythonhosted.org/packages/4b/69/c8aef60ce070fe6872e27db65f588bd0ffe8892a980cd3f4d844d8b72152/ansible-2.9.12.tar.gz Requirement already satisfied: jinja2 in /usr/local/lib64/python3.6/site-packages (from ansible) Requirement already satisfied: PyYAML in /usr/local/lib64/python3.6/site-packages (from ansible) Requirement already satisfied: cryptography in /usr/local/lib64/python3.6/site-packages (from ansible) Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib64/python3.6/site-packages (from jinja2->ansible) Requirement already satisfied: six>=1.4.1 in /usr/local/lib/python3.6/site-packages (from cryptography->ansible) Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/local/lib64/python3.6/site-packages (from cryptography->ansible) Requirement already satisfied: pycparser in /usr/local/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.8->cryptography->ansible) Installing collected packages: ansible Running setup.py install for ansible ... done Successfully installed ansible-2.9.12
Here is the output of the
pip3 show ansible command.
[root@ansible1 ~]# pip3 show ansible Name: ansible Version: 2.9.12 Summary: Radically simple IT automation Home-page: https://ansible.com/ Author: Ansible, Inc. Author-email: email@example.com License: GPLv3+ Location: /usr/local/lib/python3.6/site-packages Requires: jinja2, PyYAML, cryptography
ansible --version command returns the following.
-bash: /bin/ansible: No such file or directory
-bash: /usr/bin/ansible: No such file or directory
pip show ansible command shows that the location is
/usr/local/lib/python3.6/site-packages/ansible. This directory exists, and contains many files and folders, but no Ansible specific configuration files (e.g. ansible.cfg) or binary files (e.g. ansible) that can be used (best I can tell).