在一个 vagrant 文件中定义多个服务器时,ssh 到 vagrant 服务器是不可能的

ssh to vagrant servers not posible when defining several servers in one vagrant file

有谁知道当 vagrant 文件中定义了多个服务器时,ssh 访问服务器是否有任何问题?

这是我的 vagrant 文件的内容:

VAGRANTFILE_API_VERSION = "2"

 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
 config.ssh.insert_key = false
 config.vm.provider :virtualbox do |vb|
 vb.customize ["modifyvm", :id, "--memory", "256"]
 end


# Application server 1.
config.vm.define "app1" do |app|
app.vm.hostname = "orc-app1.dev"
app.vm.box = "centos7"
app.vm.network :public_network, ip: "192.168.60.4"
config.ssh.forward_agent = true
end

# Application server 2.
config.vm.define "app2" do |app|
config.ssh.forward_agent = true
app.vm.hostname = "orc-app2.dev"
app.vm.box = "centos7"
app.vm.network :private_network, ip: "192.168.60.5"
end

# Database server.
config.vm.define "db" do |db|
config.ssh.forward_agent = true
db.vm.hostname = "orc-db.dev"
db.vm.box = "centos7"
db.vm.network :private_network, ip: "192.168.60.6"
end
end

Vagrant ssh app1 工作正常,但如果我尝试使用 ssh 访问服务器,如 ssh vagrant@192.168.60.6,它无法连接

奇怪的是,如果我在单独的 vagrant 文件中定义每个服务器,我不得不使用 "normal" ssh 访问它。

我需要正常的 ssh 访问,因为我在 "live" 我的云服务器上尝试测试我的 ansible 剧本。

我缺少的 vagrant 文件中是否有任何设置?如果每个服务器都有单独的 vagrant 文件,为什么这会起作用?

要通过 ssh 连接到您的多个虚拟机之一,您应该使用您定义的主机名。

例如,要连接到您的 "db" 机器,请使用:

ssh vagrant@orc-db.dev -p 22

您也可以使用以下方式连接到您的计算机:

vagrant ssh db

有关 http://docs.vagrantup.com/v2/multi-machine/index.html 的更多信息。