diff --git a/Vagrantfile b/Vagrantfile
index fb8f1a7179c425cc73d3cedad7c2b42c729b3639..a23c80e4cb23991648da8bcd71c0305034db2efd 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -80,6 +80,7 @@ $ansible_tags ||= ENV['VAGRANT_ANSIBLE_TAGS'] || ""
 $vagrant_dir ||= File.join(File.dirname(__FILE__), ".vagrant")
 
 $playbook ||= "cluster.yml"
+$extra_vars ||= {}
 
 host_vars = {}
 
@@ -276,6 +277,7 @@ Vagrant.configure("2") do |config|
           ansible.host_key_checking = false
           ansible.raw_arguments = ["--forks=#{$num_instances}", "--flush-cache", "-e ansible_become_pass=vagrant"]
           ansible.host_vars = host_vars
+          ansible.extra_vars = $extra_vars
           if $ansible_tags != ""
             ansible.tags = [$ansible_tags]
           end
diff --git a/docs/vagrant.md b/docs/vagrant.md
index 7d4fd12805ac2ca00ba80e509c1dbd550d1206fe..9e12351af1c176b22924c84c128d061ae197518a 100644
--- a/docs/vagrant.md
+++ b/docs/vagrant.md
@@ -85,6 +85,11 @@ cat << EOF > vagrant/config.rb
 \$network_plugin = "flannel"
 \$inventory = "$INV"
 \$shared_folders = { 'temp/docker_rpms' => "/var/cache/yum/x86_64/7/docker-ce/packages" }
+\$extra_vars = {
+    dns_domain: my.custom.domain
+}
+# or
+\$extra_vars = "path/to/extra/vars/file.yml"
 EOF
 
 # make the rpm cache