Ssh
無法通過臨時命令從 ansible ping vagrant
我現在正在使用流浪漢。
我可以從本地終端 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 連接。Ansible
ping
模組命名令人困惑。該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 ...