在一个项目中很少有流浪盒

Ден*_*еев 1 ruby-on-rails vagrant

我想在一个项目中使用2个不同环境的2个流浪盒.我试过添加2个盒子:

vagrant box add first_box http://files.vagrantup.com/lucid32.box
vagrant box add second_box http://files.vagrantup.com/lucid32.box
Run Code Online (Sandbox Code Playgroud)

并通过以下方式切换:

vagrant init first_box
vagrant init second_box
Run Code Online (Sandbox Code Playgroud)

但它们是相同的 - 当我在一个盒子中创建测试文件时,我在其他框中看到它.有人可以帮忙吗?

Bas*_*erg 6

我不确定我是否在这里遗漏了一些东西,但是在你的情况下在你的Vagrantfile中描述2台机器是不够的,如下所示:

Vagrant::Config.run do |config|

  config.vm.box = "lucid32"
  config.vm.box_url = "http://files.vagrantup.com/lucid32.box"

  # define box #1
  config.vm.define "node1" do |cfg|
    cfg.vm.network "10.23.5.11"
    cfg.vm.provision :puppet do |puppet|
      puppet.manifests_path = "manifests"
      puppet.manifest_file = "node1.pp"
    end
  end

  # define box #2
  config.vm.define "node2" do |cfg|
    cfg.vm.network "10.23.5.12"
    cfg.vm.provision :puppet do |puppet|
      puppet.manifests_path = "manifests"
      puppet.manifest_file = "node2.pp"
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

现在您可以轻松地启动两个节点

vagrant up
Run Code Online (Sandbox Code Playgroud)

或者其中一个

vagrant up <nodename>
Run Code Online (Sandbox Code Playgroud)

并使用'halt'命令分别停止它们.你可以用它们进入

vagrant ssh <nodename>
Run Code Online (Sandbox Code Playgroud)

或直接在配置的IP地址下.

如果您不需要木偶,只需将这些线留下,否则您可以管理清单文件夹中的不同配置条件.