我正在尝试使用带有动态库存脚本的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。
有关连接问题原因的任何想法?
答案 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中指定目标主机。