
CentOS 7 に Ansible をインストールしようとしており、Ansible を Python 3 を使用するように設定しています。Python2 と Python3 の両方がインストールされています。
[root@ansible1 ~]# python --version
Python 2.7.5
[root@ansible1 ~]# python3 --version
Python 3.6.8
を使用して Ansible をインストールするとyum install ansible
、ansible --version
コマンドは Ansible が Python 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)]
によるとpython_3_support は、次の URL から入手できます。:
Python 3で/usr/bin/ansibleを実行する最も簡単な方法は、Python3バージョンのpipでインストールすることです。これにより、デフォルトの/usr/bin/ansibleがPython3で実行されます。
pip バージョン 9.0.3 がインストールされています。
[root@ansible1 ~]# pip3 --version
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
Ansible のドキュメントに従って、pip3 install ansible
pip3 を使用して 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 固有の構成ファイル (例: ansible.cfg) やバイナリ ファイル (例: ansible) はありません (私が知る限り)。
答え1
バッシュコマンドへのパスをキャッシュするまた、コマンドが再配置されると (あなたのケースではそうであるように見えますが)、そのキャッシュがクリアされない限り、bash はそれを取得しません。
ansible
キャッシュをクリアするには、次の操作を実行します。
hash -d ansible
または、次のコマンドでキャッシュ全体をクリアします。
hash -r