Ansible - pip3 इंस्टॉल विफल रहता है

Aug 17 2020

मैं CentOS 7 पर Ansible को स्थापित करने की कोशिश कर रहा हूं, और Ansible ने Python 3 का उपयोग करने के लिए कॉन्फ़िगर किया है। मैंने Python2 और Python3 दोनों को स्थापित किया है।

[root@ansible1 ~]# python --version
Python 2.7.5
[root@ansible1 ~]# python3 --version
Python 3.6.8

यदि मैं उपयोग करने योग्य स्थापित करता हूं yum install ansible, तो ansible --versionकमांड दिखाता है कि Ansible को 2.7.5 का उपयोग करने के लिए कॉन्फ़िगर किया गया है। मैं 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)]

के अनुसार https://docs.ansible.com/ansible/latest/reference_appendices/python_3_support.html:

पायथन 3 के तहत चलाने / usr / bin / ansible का सबसे आसान तरीका यह है कि इसे पाइप के पायथन 3 संस्करण के साथ स्थापित किया जाए। यह Python3 के साथ डिफ़ॉल्ट / usr / bin / ansible रन बनाएगा

मेरे पास पाइप का संस्करण 9.0.3 स्थापित है।

[root@ansible1 ~]# pip3 --version
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)

Ansibles प्रलेखन के बाद, मैं pip3 install ansiblepip3 का उपयोग करके Ansible को स्थापित करने के लिए जारी करता हूं।

[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

यहाँ pip3 show ansibleकमांड का आउटपुट है ।

[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

हालाँकि, ansible --versionआदेश निम्न देता है।

-bash: /bin/ansible: No such file or directory

इसी तरह /usr/bin/ansible --version,:

-bash: /usr/bin/ansible: No such file or directory

pip show ansibleआदेश शो स्थान है कि /usr/local/lib/python3.6/site-packages/ansible। यह निर्देशिका मौजूद है, और इसमें कई फाइलें और फ़ोल्डर्स हैं, लेकिन कोई भी अंयनिष् ट विशिष्ट विन्यास फाइल (जैसे ansible.cfg) या बाइनरी फाइलें (जैसे ansible) जिनका उपयोग किया जा सकता है (सबसे अच्छा मैं बता सकता हूं)।

जवाब

3 MichaelHampton Aug 17 2020 at 17:39

बैश आज्ञाओं के पथ को कैश करता है , और यदि कोई कमांड स्थानांतरित हो जाती है (जैसा कि यह आपके मामले में प्रतीत होता है) तो बैश इसे तब तक नहीं उठाएगा जब तक कि कैश साफ़ नहीं हो जाता।

आप ansibleकैश से साफ़ कर सकते हैं :

hash -d ansible

या इसके साथ पूरा कैश साफ़ करें:

hash -r