1

我想在一个项目中使用 2 个具有 2 个不同环境的 vagrant box。我尝试通过以下方式添加 2 个框:

vagrant box add first_box http://files.vagrantup.com/lucid32.box
vagrant box add second_box http://files.vagrantup.com/lucid32.box

并通过以下方式在它们之间切换:

vagrant init first_box
vagrant init second_box

但它们是相同的——当我在一个盒子中创建测试文件时,我会在另一个盒子中看到它。任何人都可以帮忙吗?

4

1 回答 1

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

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

vagrant up

或其中之一

vagrant up <nodename>

并分别使用“停止”命令停止它们。您可以使用 ssh 进入它们

vagrant ssh <nodename>

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

如果您不需要 puppet,只需将这些行省略,否则您可以在 manifests 文件夹中管理不同的配置 srcipts。

于 2012-01-20T23:03:09.287 回答