BerlinVagrant / vagrant-dns

A plugin to manage DNS records for vagrant environments

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

More than 2 vm dns config

murarisumit opened this issue · comments

Vagrant: Vagrant 2.1.1

BOX_IMAGE = "ubuntu/xenial64"
NODE_COUNT = 2

Vagrant.configure("2") do |config|
  config.dns.tld = "dev"
  config.vm.hostname = "vagrant2"
  config.dns.patterns = [/^.*mysite.dev$/, /^.*myothersite.dev$/]

  (1..NODE_COUNT).each do |i|
    config.vm.define "node#{i}" do |subconfig|

      subconfig.vm.box_check_update = false
      subconfig.vm.box = BOX_IMAGE
      subconfig.vm.network "private_network", ip: "33.33.33.#{i+10}"
      subconfig.vm.provider "virtualbox" do |vb|
          vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on", "--vrde", "off", "--vram", 10]
        end
    end
  end
end
$ > vagrant dns -l
/^.*vagrant.dev$/ => 33.33.33.12

Is there any way to resolve dns for multi-vms.

I know it's too much to ask but I not move my head around this.

BOX_IMAGE = "ubuntu/xenial64"
NODE_COUNT = 2

Vagrant.configure("2") do |config|
  (1..NODE_COUNT).each do |i|
    config.vm.define "host#{i}.vagrant.dev" do |subconfig|
      subconfig.dns.tld = "dev"
      subconfig.vm.hostname = "vagrant"
      subconfig.dns.patterns = [/^.*mysite.dev$/, /^.*myothersite.dev$/]
      subconfig.vm.box_check_update = false
      subconfig.vm.box = BOX_IMAGE
      subconfig.vm.network "private_network", ip: "33.33.33.#{i+10}"
      subconfig.vm.provider "virtualbox" do |vb|
          vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on", "--vrde", "off", "--vram", 10]
        end
    end
  end
end

Can you please correct me in the config, and just make functional so that I can understand how it's all working. Right now I'm like just shooting in dark, not able to figure out how is it working. TIA :)

No worries, here we go:

BOX_IMAGE = "ubuntu/xenial64"
NODE_COUNT = 2

Vagrant.configure("2") do |config|
  (1..NODE_COUNT).each do |i|
    config.vm.define "host#{i}.vagrant.dev" do |subconfig|
      subconfig.dns.tld = "dev"
      subconfig.vm.hostname = "vagrant"
      subconfig.dns.patterns = [/^host#{i}\.mysite\.dev$/]
      subconfig.vm.box_check_update = false
      subconfig.vm.box = BOX_IMAGE
      subconfig.vm.network "private_network", ip: "33.33.33.#{i+10}"
      subconfig.vm.provider "virtualbox" do |vb|
          vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on", "--vrde", "off", "--vram", 10]
        end
    end
  end
end

The usage of an regular expression here is a bit overkill, but I wanted to stick to your sample.

May I also suggest to not use dev as a top level domain (for reasoning see: #54)

If you have more questions, don't hesitate to ask.

Thanks a lot @fnordfish.

BOX_IMAGE = "ubuntu/xenial64"
MASTER_COUNT = 2
WORKER_COUNT = 2

Vagrant.configure("2") do |config|
  (1..MASTER_COUNT).each do |i|
    config.vm.define "master#{i}.vagrant.box" do |subconfig|
      subconfig.dns.tld = "box"
      subconfig.vm.hostname = "vagrant"
      subconfig.dns.patterns = "master#{i}.mysite.box"
      subconfig.vm.box_check_update = false
      subconfig.vm.box = BOX_IMAGE
      subconfig.vm.network "private_network", ip: "10.240.0.#{i+10}"
      subconfig.vm.provider "virtualbox" do |vb|
          vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on", "--vrde", "off", "--vram", 10]
        end
    end
  end

  (1..WORKER_COUNT).each do |i|
    config.vm.define "worker#{i}.vagrant.box" do |subconfig|
      subconfig.dns.tld = "box"
      subconfig.vm.hostname = "vagrant"
      subconfig.dns.patterns = "worker#{i}.mysite.box"
      subconfig.vm.box_check_update = false
      subconfig.vm.box = BOX_IMAGE
      subconfig.vm.network "private_network", ip: "10.240.0.#{i+15}"
      subconfig.vm.provider "virtualbox" do |vb|
          vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on", "--vrde", "off", "--vram", 10]
        end
    end
  end

end

Ping works: ping worker2.mysite.box.

Will it be okay, if i add it in readme, because multivm example wasn't there !

@fnordfish I've made changes in README (#63) , let me know if some formatting is required or any other changes need to be made.