ansible ping 与本地主机

ansible ping with localhost

我在使用 ansible 时遇到了一些问题,因为我无法 ping 本地主机中的服务器。我创建了文件主机,这就是代码:

testserver ansible_ssh_host=127.0.0.1 ansible_ssh_port=2200 \ ansible_ssh_user=vagrant \ ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key

我正在使用 Fedora 并使用 virtualbox 4.3 虚拟化了 Debian

这就是 shell 中的附加内容:

[andrea@andrea ~]$ ansible testserver -i /home/andrea/playbooks/hosts -m ping -vvvv
<127.0.0.1> ESTABLISH CONNECTION FOR USER: andrea
<127.0.0.1> REMOTE_MODULE ping
<127.0.0.1> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/home/andrea/.ansible/cp/ansible-ssh-%h-%p-%r" -o Port=2200 -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 127.0.0.1 /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1445357197.49-202989636750564 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1445357197.49-202989636750564 && echo $HOME/.ansible/tmp/ansible-tmp-1445357197.49-202989636750564'
testserver | FAILED => SSH Error: Permission denied (publickey,password).
    while connecting to 127.0.0.1:2200
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.

我认为您没有使用正确的 user/key 组合登录。

尝试以下操作:

ansible -vvvv testserver -i /home/andrea/playbooks/hosts -m ping --private-key=.vagrant/machines/default/virtualbox/private_key -u vagrant

我加了

  • -u 选项指定用户(根据你贴的那一行应该是vagrant)
  • --private-key 选项告诉 vagrant 在哪里可以找到你的 ssh 私钥文件

顺便说一下,如果你想登录你应该使用:

ssh -i .vagrant/machines/default/virtualbox/private_key vagrant@127.0.0.1 -p 2200

(Sven 忘记告诉您使用正确的用户,所以您可能正在尝试使用 "andrea" 用户登录)