Ssh

無法通過臨時命令從 ansible ping vagrant

  • July 19, 2018

我現在正在使用流浪漢。

我可以從本地終端 ping 虛擬機。

我想用 ansible ping 那個流浪的虛擬機:

$ ansible 192.168.33.101 -m ping -u root

但出現錯誤:

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

/etc/ansible/hosts我在文件中添加了該 IP :

192.168.33.101

本地和虛擬機都安裝了 ssh。那為什麼達不到呢?

您需要配置 ssh 連接。Ansibleping模組命名令人困惑。該ping模組實際上建立了一個 ssh 連接來驗證登錄能力以及配置了一個可用的 python。

因此,就像ping command可以告訴您與遠端主機的網路連接正在工作一樣,它會ping module告訴您 Ansible 能夠在遠端主機上執行命令。

查看官方文件如何設置與 Vagrant 盒子的 ssh 連接。

基本上你需要這樣的東西:

ansible-playbook --private-key=~/.vagrant.d/insecure_private_key -u vagrant -i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory playbook.yml

對於像這樣的臨時命令:

ansible --private-key=~/.vagrant.d/insecure_private_key -u vagrant ...

引用自:https://serverfault.com/questions/845705