
Estoy intentando instalar Ansible en CentOS 7 y tengo Ansible configurado para usar Python 3. Tengo instalados Python2 y Python3.
[root@ansible1 ~]# python --version
Python 2.7.5
[root@ansible1 ~]# python3 --version
Python 3.6.8
Si instalo Ansible usando yum install ansible
, el ansible --version
comando muestra que Ansible está configurado para usar Python 2.7.5. Desinstalo 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)]
De acuerdo ahttps://docs.ansible.com/ansible/latest/reference_appendices/python_3_support.html:
La forma más sencilla de ejecutar /usr/bin/ansible en Python 3 es instalarlo con la versión Python3 de pip. Esto hará que el /usr/bin/ansible predeterminado se ejecute con Python3
Tengo instalada la versión 9.0.3 de pip.
[root@ansible1 ~]# pip3 --version
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
Siguiendo la documentación de Ansibles, propongo pip3 install ansible
instalar Ansible usando 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
Aquí está el resultado del pip3 show ansible
comando.
[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 protected]
License: GPLv3+
Location: /usr/local/lib/python3.6/site-packages
Requires: jinja2, PyYAML, cryptography
Sin embargo, el ansible --version
comando devuelve lo siguiente.
-bash: /bin/ansible: No such file or directory
Asimismo, /usr/bin/ansible --version
:
-bash: /usr/bin/ansible: No such file or directory
El pip show ansible
comando muestra que la ubicación es /usr/local/lib/python3.6/site-packages/ansible
. Este directorio existe y contiene muchos archivos y carpetas, pero no hay archivos de configuración específicos de Ansible (por ejemplo, ansible.cfg) ni archivos binarios (por ejemplo, ansible) que puedan usarse (lo mejor que puedo decir).
Respuesta1
Intentoalmacena en caché las rutas a los comandos, y si se reubica un comando (como parece ser en su caso), bash no lo recogerá a menos que se borre el caché.
Puedes borrar ansible
del caché con:
hash -d ansible
O borre todo el caché con:
hash -r