我使用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
或其他什么内容?
答案 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)