Change vagrant to provision template VM and create clones for all VMs

refs #2436

Change-Id: Ia4326d2129356d3711c0a9ba006cce7890eab7b0
diff --git a/Vagrantfile b/Vagrantfile
index 0177d66..a95f369 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -6,7 +6,6 @@
 
 $setup = <<SCRIPT
 sudo apt-get update -qq
-sudo apt-get install -y python
 SCRIPT
 
 $setup_integ = <<SCRIPT
@@ -52,42 +51,44 @@
   config.vm.box = "ubuntu/trusty64"
 
   config.vm.provider "virtualbox" do |vb|
-    vb.memory = "4096"
-    vb.cpus = "4"
+    vb.memory = "2048"
+    vb.cpus = "1"
     vb.customize ["storagectl", :id, "--name", "SATAController", "--hostiocache", "off"]
   end
 
+  config.vm.define "template" do |t|
+    t.vm.provision "shell", inline: $setup, privileged: false
+    t.vm.provision "shell", inline: $setup_ssh, privileged: false
+    t.vm.provision "shell", inline: $setup_integ, privileged: false
+  end
+
   config.vm.define "A" do |a|
+    a.vm.box = "nfd-integ"
     a.vm.network "private_network", ip: "192.168.1.3", virtualbox__intnet: "ABC-switch"
     a.vm.network "private_network", ip: "192.168.2.2", virtualbox__intnet: "AtoRouter"
     a.vm.provision "shell", inline: $setup, privileged: false
     a.vm.provision "shell", inline: $setup_a, privileged: false
-    a.vm.provision "shell", inline: $setup_ssh, privileged: false
-    a.vm.provision "shell", inline: $setup_integ, privileged: false
   end
 
   config.vm.define "B" do |b|
+    b.vm.box = "nfd-integ"
     b.vm.network "private_network", ip: "192.168.1.2", virtualbox__intnet: "ABC-switch"
     b.vm.provision "shell", inline: $setup, privileged: false
     b.vm.provision "shell", inline: "ip -6 addr add fd01::2/64 dev eth1"
-    b.vm.provision "shell", inline: $setup_ssh, privileged: false
-    b.vm.provision "shell", inline: $setup_integ, privileged: false
   end
 
   config.vm.define "C" do |c|
+    c.vm.box = "nfd-integ"
     c.vm.network "private_network", ip: "192.168.1.4", virtualbox__intnet: "ABC-switch"
     c.vm.provision "shell", inline: $setup, privileged: false
     c.vm.provision "shell", inline: "ip -6 addr add fd01::4/64 dev eth1"
-    c.vm.provision "shell", inline: $setup_ssh, privileged: false
-    c.vm.provision "shell", inline: $setup_integ, privileged: false
   end
 
   config.vm.define "D" do |d|
+    d.vm.box = "nfd-integ"
     d.vm.network "private_network", ip: "192.168.3.3", virtualbox__intnet: "DtoRouter"
     d.vm.provision "shell", inline: $setup, privileged: false
     d.vm.provision "shell", inline: $setup_d
-    d.vm.provision "shell", inline: $setup_ssh, privileged: false
-    d.vm.provision "shell", inline: $setup_integ, privileged: false
   end
 
   config.vm.define "router" do |router|