不能在ansible中更改Python版本



当我运行以下命令:ansible-playbook --version时,我得到了结果:

ansible-playbook 2.5.0
config file = /home/dev/sources/Installation/ansible.cfg
configured module search path = ['/home/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
executable location = /usr/local/bin/ansible-playbook
python version = 3.8.10 (default, Jun  2 2021, 10:49:15) [GCC 9.4.0]

问题是我希望Python 2.7.8而不是3.8.10。

我对ansible.cfg文件的配置如下:

[defaults]
# SSH key host checking
host_key_checking=false
allow_world_readable_tmpfiles=true
roles_path=./roles/:../../Installation/roles/
filter_plugins=./filter_plugins/:../../Installation/filter_plugins/
ansible_python_interpreter=/opt/Python-2.7.8/python/
ansible python module location = /usr/local/lib/python2.7/dist-packages/ansible

…当我再次运行ansible-playbook --version命令时,它仍然指向Python 3.8。我做错了什么?我还尝试在playbook vars (ansible_python_interpreter: /opt/Python-2.7.8/python/))中定义python变量,但是没有成功。

是一个python包它由ansible,ansible-playbook,ansible-galaxy等几个可执行文件组成。如果你想使用Python 2.7,那么你应该确保ansible是作为Python的库安装的,并且该安装的可执行文件在你的PATH变量等中。一种方法是使用virtualenv,它创建一个Python 2.7的副本,您可以仅为您的项目激活该副本。Python-virtualenv是针对您的操作系统的包。一旦你安装了它,你可以运行:

virtualenv -p /usr/bin/python2.7 py27
source py27/bin/activate
pip install ansible==2.5.0
ansible-playbook --version

请注意Python 2.7已于2020年1月1日EOL,而Ansible 2.8及更早版本已经过时,不再由社区更新。(虽然仍有部分厂商支持)

最新更新