使用ansible时无法连接到服务器

时间:2017-03-03 19:36:49

标签: ssh ansible

我使用digitalocean创建了一个Droplet,我可以使用ssh root@37.139.14.547连接到我的Droplet而没有任何问题。

我刚刚下载了ansible并将其添加到我的/etc/ansible/hosts

root@37.139.14.547

之后我正在运行ansible all -m ping,但收到错误:

root@37.139.14.547 | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey).\r\n", 
    "unreachable": true
}

我做错了什么?我是否需要告诉ansible我的ssh公钥位于~/.ssh/id_rsa.pub或其他什么内容?

2 个答案:

答案 0 :(得分:1)

首先确保您已在本地计算机上安装了所有软件包... pip install --user --upgrade setuptools pip install --user --upgrade ansible

检查更新; ansible --version ```` ansible 2.3.2.0   配置文件=   已配置的模块搜索路径=默认w / o覆盖   python version = 2.7.10(默认,2017年2月7日,00:08:15)[GCC 4.2.1兼容Apple LLVM 8.0.0(clang-800.0.34)]```

同样在你的遥控器上,因为安装了python的Ubuntu Server 16.04 LTS没有安装python,所以ssh进入远程服务器并在连接到你的遥控器之前运行它。 sudo apt-get install python-minimal -y

我使用EC2作为我的远程服务器 然后尝试这个...... [webserver] 37.170.254.200 ansible_ssh_private_key_file=/home/username/.ssh/my_key.pem

确保您可以连接到远程ssh -i“my_key.pem`”ubuntu@37.170.254.200 如果您可以连接“SUCCESS”,请运行“ansible Ad-Hoc命令”进行ping

ansible webserver -m ping -u ubuntu

37.170.254.200 | SUCCESS => { "changed": false, "ping": "pong" }

或尝试检查遥控器的内存使用情况 ansible webserver -a "free -m" -u ubuntu

如果“SUCCESS”您连接到远程服务器

答案 1 :(得分:-1)

请阅读Ansible inventory的样子。

将您的主机更改为:

index.js