当加载任何涉及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'>
答案 0 :(得分:1)
原来是PEBKAC,我不知道即使在本地执行ansible模块(例如EC2)也会运行一个新的python实例。
通过设置解决:
ansible_python_interpreter=/usr/bin/python2
在/ etc / ansible / hosts
中的localhost上