通常は、Vagrant-managed VM with vagrant ssh
を使用してSSHでログインできます。2つのオプションがあります。
insecure_private_key
を使用して認証できます。config.ssh.forward_agent
がtrue
に設定されており、VMが正しく構成されている場合、独自の秘密鍵を使用します2番目のオプションを使用します。 S vagrant ssh
を実行すると、カスタム秘密鍵を使用してマシンにSSHでログインします。
ここで、Ansible SSHをVagrantマシンに許可する必要があり、Vagrantfile
を使用したくありません。
だから私は実行しました:
ansible-playbook -i hosts/development --private-key=~/.ssh/id_rsa -u vagrant dev.yml
そして私はこのエラーを返しました:
致命的:[192.168.50.5] => SSHエラー:アクセスが拒否されました(公開鍵)。 192.168.50.5:22への接続中
hosts/inventory
ファイルには、VagrantのIPのみが保持されていますVM(192.168.50.5)。
AnsibleがVMにSSH接続できない理由がわかりません。 id_rsa
を実行するときとまったく同じユーザー(vagrant
)とキー(vagrant ssh
)を使用しています。
ただし、上記が実行されない間は、vagrant ssh
を使用した問題はありません。
任意の提案をいただければ幸いです。
問題はおそらくhosts/inventory
ファイルにあります。その中にAnsibleの適切な接続構成を追加し、保存して再実行する必要があります。
192.168.50.5 ansible_ssh_port=22 ansible_ssh_user=vagrant ansible_ssh_private_key_file=~/.ssh/id_rsa
ポート22
を使用していない場合は、それに応じてホストファイルのansible_ssh_port
を調整してください。
また、Vagrantでpubkeyを設定していない可能性もあるため、これも機能しません。これをテストするには、次を実行します。
vagrant ssh-config | grep IdentityFile
# result should be your private key and not
# .vagrant/machines/default/virtualbox/private_key
pubkey
をVagrant vmに配置していない場合は、秘密鍵を試す前に追加する必要があります。
リファレンス: http://docs.ansible.com/ansible/intro_inventory.html#list-of-behavioral-inventory-parameters