Ansible AWS动态库存连接无法正常工作

时间:2017-05-06 19:52:51

标签: amazon-web-services amazon-ec2 ansible boto

我正在尝试使用带有动态库存脚本的ansible在AWS上配置服务器。

我创建了一个工作正常的ec2实例,我可以手动ssh进去。但是,当试图访问实例(只是为了ping或安装软件)时,我遇到了麻烦。

ansible -i ec2.py all -m ping

xx.xx.xx.xx | FAILED! => {
"changed": false, 
"failed": true, 
"module_stderr": "Shared connection to xx.xx.xx.xx closed.\r\n", 
"module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n", 
"msg": "MODULE FAILURE", 
"rc": 0

}

ansible-playbook deploy_site.yml -i ec2.py all

ERROR! the playbook: all could not be found

我的所有文件都位于目录group_vars

playbook
- deploy_site.yml
/group_vars
  -all

看起来像

ansible_user: ubuntu
ansible_ssh_private_key_file: ~/.ssh/key_pair.pem

我的key_pair.pem文件存在且mod = 600

所有这些都发生在虚拟环境特定的ansible中,主机和服务器都是ubuntu 16.04。

有关连接问题原因的任何想法?

2 个答案:

答案 0 :(得分:1)

请分享ansible的输出以及group_vars版本的内容。

还尝试安装python并在apt-get install -y python-dev python3 python3-dev python3-setuptools 上配置它:

ansible_user: ubuntu
ansible_ssh_private_key_file: ~/.ssh/key_pair.pem
ansible_python_interpreter=/usr/bin/python3
在您的文件中

尝试执行以下操作:

ansible -i ec2.py all -m ping -e 'ansible_python_interpreter=/usr/bin/python3'

您也可以尝试:

Caused by: java.lang.IllegalArgumentException: Not a managed type: class java.util.Date

答案 1 :(得分:1)

第一个问题:

/bin/sh: 1: /usr/bin/python: not found\r\n"

您必须在目标计算机以及控制计算机上安装Python。

第二个问题:

ansible-playbook deploy_site.yml -i ec2.py all

从命令中删除all

使用ansible-playbook,您可以使用hosts指令在playbook中指定目标主机。