是否有一个命令可以用来让 Vagrant 重新生成一个用于 ssh 登录的新密钥,vagrant ssh
或者我是否需要手动生成一个新密钥并将其插入 .vagrant 文件夹中的正确位置?
答案1
我做了以下操作,并且对我有用。
库存文件
#application servers
[app]
192.168.60.4 app1
192.168.60.5 app2
# Database server
[db]
192.168.60.6 db
# Group 'multi' with all servers
[multi:children]
app
db
# Variables that will be applied to all servers
[multi:vars]
ansible_ssh_user=vagrant
ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key
我的Vagrant 文件如下所示:
VAGRANTFILE_API_VERSION="2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# General Vagrant VM coniguration
config.vm.box="geerlingguy/centos7"
config.ssh.insert_key = false
config.vm.synced_folder ".", "/vagrant",disabled: true
config.vm.provider :virtualbox do |v|
v.memory = 256
v.linked_clone = true
end
#Application server 1.
config.vm.define "app1" do |app|
app.vm.hostname = "orc-app1-test"
app.vm.network :private_network, ip: "192.168.60.4"
end
#Application server 2.
config.vm.define "app2" do |app|
app.vm.hostname = "orc-app2-test"
app.vm.network :private_network, ip: "192.168.60.5"
end
#Database server 1.
config.vm.define "db" do |app|
app.vm.hostname = "orc-db-test"
app.vm.network :private_network, ip: "192.168.60.6"
end
#ansible playbook provisioner
# config.vm.provision"ansible"do|ansible|
# ansible.playbook = "playbook.yml"
# end
end
另外,请确保您的KnownHost
文件是干净的。
vi /Users/JohnDoe/.ssh/known_hosts
基本上这就是我使用 Vagrant 和 SSH/Ansible 的方式
答案2
如果你输入,vagrant ssh-config
它会显示 vagrant 的 ssh 密钥的位置。现在,当你删除密钥时,Vagrant 会在你运行时自动生成一个新密钥vagrant up