3

Hi lets say I have 4 machines defined in my Vagrantfile (this is just example),

Vagrant.configure(2) do |config|

  config.vm.define "elasticsearch" do |a|
    a.vm.provider "docker" do |docker|
      docker.name = 'elasticsearch'
      docker.build_dir = ".docker/elasticsearch"
    end
  end

  config.vm.define "elasticsearch-test" do |a|
    a.vm.provider "docker" do |docker|
      docker.name = 'elasticsearch-test'
      docker.build_dir = ".docker/elasticsearch"
    end
  end

  config.vm.define "mongodb" do |a|
    a.vm.provider "docker" do |docker|
      docker.name = 'mongodb'
      docker.image = "mongo:3.0"
    end
  end

  config.vm.define "mongodb-test" do |a|
      a.vm.provider "docker" do |docker|
      docker.name = 'mongodb-test'
      docker.image = "mongo:3.0"
    end
  end

end

and I want to group elasticsearch and mongodb as "dev env"

and then I want to group elasticsearch-test and mongodb-test as "test env"

then I want to be able to run a single command to bring up the env I want to work with now. e. g.:

vagrant up "dev env"

How do I do this? I could not find anything about such thing in vagrant docs. How would you approach this problem? Should I create a different Vagrantfile in some subdirectory of the project and do define only machines per environment?

0 Answers0