当我运行以下命令: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及更早版本已经过时,不再由社区更新。(虽然仍有部分厂商支持)