多虚拟机Vagrantfile:需要指定ssh端口



我有一种情况,我需要为每个迁移虚拟机指定要ssh到的端口。我已经到了在几个项目之间来回切换的地步,所有这些项目我都使用vagrant。

我的Vagrantfile是这样的:

Vagrant.configure(2) do |config|
  config.vm.define "inspire" do |inspire|
    inspire.vm.box = "hansode/centos-6.6-x86_64"
    inspire.vm.network "private_network", ip: "55.55.55.2"
  end
  config.vm.define "web" do |web|
    web.vm.box = "ubuntu/trusty64"
    web.vm.network "private_network", ip: "55.55.55.3"
  end
  config.vm.define "api" do |api|
    api.vm.box = "ubuntu/trusty64"
    api.vm.network "private_network", ip: "55.55.55.4"
  end
  config.vm.define "lamp" do |lamp|
    lamp.vm.box = "chef/centos-7.0"
    lamp.vm.network "private_network", ip: "55.55.55.5"
  end
end

我启动的第一个运行在127.0.0.1:2222上,然后下一个运行在127.0.0.1:2200上,依此类推。我需要知道是否有一个功能,我可以永久设置这个,以便inspire总是运行在端口2001;web总是运行在2002上;api总是运行在2003上;等等......像这样的?

Vagrant.configure(2) do |config|
  config.vm.define "inspire" do |inspire|
    inspire.vm.box = "hansode/centos-6.6-x86_64"
    inspire.vm.network "private_network", ip: "55.55.55.2"
    inspire.vm.port 2001
  end
  config.vm.define "web" do |web|
    web.vm.box = "ubuntu/trusty64"
    web.vm.network "private_network", ip: "55.55.55.3"
    web.vm.port 2002
  end
  config.vm.define "api" do |api|
    api.vm.box = "ubuntu/trusty64"
    api.vm.network "private_network", ip: "55.55.55.4"
    api.vm.port 2003
  end
  ...
end

这个特性存在吗?

不是machine.vm.port而是machine.ssh.port

Vagrant.configure(2) do |config|
  config.vm.define "inspire" do |inspire|
    inspire.vm.box = "hansode/centos-6.6-x86_64"
    inspire.vm.network "private_network", ip: "55.55.55.2"
    inspire.ssh.port = 2001
  end

所以你将连接到启发端口2001

EDIT虽然我认为上面的方法是有效的,但似乎有一些讨论,下面的方法可以工作

  config.vm.network :forwarded_port,
    guest: 22,
    host: 2201,
    id: "ssh",
    auto_correct: true

vagrant ssh将连接到虚拟机并验证我是否正确ssh到2201端口:

fhenri@machine:~$ ssh vagrant@localhost -p 2201
The authenticity of host '[localhost]:2201 ([127.0.0.1]:2201)' can't be established.
RSA key fingerprint is 6d:21:5c:b3:d9:78:c1:d0:77:a9:79:d5:61:51:e5:bb.
Are you sure you want to continue connecting (yes/no)? yes

最新更新