自动化运维工具ansible-如何设置客户端多python版本问题

问题:在使用ansible进行管理客户主机时,发现客户主机安装了多个版本的python,并且默认版本为3.0

 

shell>>cat list

192.168.2.9

 

shell>>ansible all -m ping -i list --ask-pass -u test

会报如下错误信息:

192.168.2.9 | FAILED >> {
                                       "failed": true, 
                                       "msg": "  File \"/home/test/.ansible/tmp/ansible-1382616743.5-201381009945012/ping\", line 340\n    except OSError, e:\n                  ^\nSyntaxError: invalid syntax\n",
                                       "parsed": false

                                       }

原因很简单:python版本的不兼容性导致的语法错误;

 

ansible额外提供了一个变量:ansible_python_interpreter

 

添加参数:

shell>>cat list

192.168.2.9  ansible_python_interpreter=/usr/bin/python2.4

 

shell>>ansible all -m ping -i list --ask-pass -u test

 

192.168.2.9 | success >> {
    "changed": false,
    "ping": "pong"
}

 

OK返回正确的ping结果,成功运行

posted @ 2013-10-24 20:18  596448745  阅读(5009)  评论(0编辑  收藏  举报