SSH 到一个特定的 vagrant box 而不是默认的 vagrant box

SSH into a specific vagrant box rather than the default one

我有 3 个 vagrant boxes

vagrant box list

hashicorp/precise32 (virtualbox, 1.0.0)
hashicorp/precise64 (vmware_fusion, 1.1.0)
laravel/homestead   (virtualbox, 0.4.2)

当我执行 vagrant upvagrant ssh 时,我一直登录到 hashicorp/precise32 机器。

如何通过 ssh 进入此框 hashicorp/precise64

在你的项目目录中,你已经定义了一个Vagrantfile,在这个Vagrantfile中,你已经指出了你旋转的VM需要使用的框,比如

Vagrant.configure("2") do
  config.box = "hashicorp/precise32"
end

如果您想从 hashicorp/precise64 框中创建新的 VM,您需要

Vagrant.configure("2") do
  config.box = "hashicorp/precise64"
end

为确保您没有删除任何内容,只需创建一个新文件夹和一个新的 Vagrantfile。要启动您的新实例,请执行

vagrant up --provider vmware_fusion

vagrant ssh {主机名}


例子

如果您在 vagrant 文件中声明了 3 个 Vms。

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.define "lb01" do |lb01|
    lb01.vm.box = "ubuntu/trusty64"
    lb01.vm.hostname = "lb01"
    lb01.vm.network :private_network, ip: "10.11.12.50"
  end

  config.vm.define "web01" do |web01|
    web01.vm.box = "ubuntu/trusty64"
    web01.vm.hostname = "web01"
    web01.vm.network :private_network, ip: "10.11.12.51"
  end

  config.vm.define "web02" do |web02|
    web02.vm.box = "ubuntu/trusty64"
    web02.vm.hostname = "web02"
    web02.vm.network :private_network, ip: "10.11.12.52"
  end
end

然后,在 运行 vagrant up 之后,我可以 vagrant ssh lb01 我应该登录到 lb01 VM。