使用EC2模块时,无论输入如何,Ansible中的语法错误

时间:2016-05-29 19:37:23

标签: amazon-ec2 ansible boto ansible-playbook

当加载任何涉及EC2模块的ansible剧本时,我似乎得到以下错误:

fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, "module_stderr": "  File \"/tmp/ansible_j7uw9w39/ansible_module_ec2.py\", line 919\n    except boto.exception.NoAuthHandlerFound, e:\n                                            ^\nSyntaxError: invalid syntax\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false}

我已经使用位于https://stackoverflow.com/a/29914701/6150056的基本剧本作为测试用例对此进行了测试,以确保我不会生气。

我有什么遗失的吗?我已经尝试过Ansible 2.1和2.2(git)而没有任何变化。我认为这肯定是一个PEBKAC错误,因为谷歌在这个问题上没有任何改变。

我已经确认boto auth确实有效,并且可以找到我的凭据:

Python 2.7.11 (default, Mar 31 2016, 06:18:34) 
[GCC 5.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto.ec2
>>> conn = boto.ec2.connect_to_region("us-west-2")
>>> type(conn)
<class 'boto.ec2.connection.EC2Connection'>

1 个答案:

答案 0 :(得分:1)

原来是PEBKAC,我不知道即使在本地执行ansible模块(例如EC2)也会运行一个新的python实例。

通过设置解决:

ansible_python_interpreter=/usr/bin/python2

在/ etc / ansible / hosts

中的localhost上