在5.x节点中进行python升级后,对ansible命令进行泛化

在5.x节点中进行python升级后,对ansible命令进行泛化,ansible,Ansible,我有许多系统连接到我的Ansible服务器,它们位于CentOS 5.X和CentOS 6.X中。我已将CentOS 5.x的python升级到2.6版本,并创建了如下软链接,以在CentOS 5.x节点中使用Ansible: # ll /usr/local/python lrwxrwxrwx 1 root root 25 Jan 12 22:36 /usr/local/python -> /opt/python2.6/bin/python 现在我运行ansible playbook命令

我有许多系统连接到我的Ansible服务器,它们位于CentOS 5.X和CentOS 6.X中。我已将CentOS 5.x的python升级到2.6版本,并创建了如下软链接,以在CentOS 5.x节点中使用Ansible:

# ll /usr/local/python
lrwxrwxrwx 1 root root 25 Jan 12 22:36 /usr/local/python -> /opt/python2.6/bin/python
现在我运行ansible playbook命令,如下所示:

# Centos 5.x:
ansible-playbook copy.yml -e 'ansible_python_interpreter=/usr/local/python'

# Centos 6.x: 
ansible-playbook copy.yml
为了将命令推广到CentOS 5.x和CentOS 6.x系统,我决定将Python路径映射为环境变量


.bash_配置文件的条目应该是什么?还有其他解决方案吗?

正确的方法是使用库存

大概是这样的:

[centos5]
host1
host2

[centos5:vars]
ansible_python_interpreter=/usr/local/python

[centos6]
host3
host4

这样一来,
ansible\u python\u解释器
将仅对centos5主机被覆盖。

“该如何设置.bash\u概要文件的条目?”--这不起作用
.bash\u profile
不适用于使用Ansible的非交互式SSH会话。好的。还有其他解决方案吗?Ansible在收集事实之前不知道系统是什么。为了收集事实,它需要Python(因此需要路径)。您可以使用
raw
模块进行检查,但这是不可行的。 ・ 只需在清单中定义它。您知道您管理的系统以及它们的版本。