vagrant:我可以从多机器设置中“流出”一台机器

时间:2015-02-18 11:22:21

标签: vagrant vagrantfile

我可以vagrant up从多机器设置中只使用一台机器吗?

我怎么能有不同的设置来开发,例如localtestproduction?我必须有不同的Vagrantfile s?

示例Vagrantfile(取自多机文档页面)

Vagrant.configure("2") do |config|
  config.vm.provision "shell", inline: "echo Hello"

  config.vm.define "web" do |web|
    web.vm.box = "apache"
  end

  config.vm.define "db" do |db|
    db.vm.box = "mysql"
  end
end

1 个答案:

答案 0 :(得分:1)

  1. 要启动所需的计算机,只需致电vagrant up machine_name。 在您的配置中,它可以是vagrant up web
  2. 通过在计算机配置中设置autostart: false,可以在vagrant up呼叫中阻止计算机的自动启动。有关vagrant多机配置的更多信息here

    2.有很多方法可以在流浪汉中设置不同的设置。

    一个。使用不同的规定脚本定义不同的机器:

      config.vm.define "m1", autostart: false do |m1|
        m1.vm.provision "shell" do |s|
            s.path = "path_to/m1_provision_script.sh"
        end
      end 
      config.vm.define "m2", autostart: false do |m2|
        m2.vm.provision "shell" do |s|
            s.path = "path_to/m2_provision_script.sh"
        end
      end
    

    湾为配置脚本提供不同的参数:

      config.vm.define "m1", autostart: false do |m1|
        m1.vm.provision "shell" do |s|
            s.path = "path_to/provision_script.sh"
            s.args = "machine_1"
        end
      end 
      config.vm.define "m2", autostart: false do |m2|
        m2.vm.provision "shell" do |s|
            s.path = "path_to/provision_script.sh"
            s.args = "machine_2"
        end
      end
    

    ℃。如果您使用puppet作为供应商,您还可以定义自定义事实,以指示机器是localtest还是prod