Browse Source

The Vagrantfile can now easily create multiple machines

Till Klocke 9 years ago
parent
commit
495fff799b
1 changed files with 22 additions and 13 deletions
  1. 22 13
      Vagrantfile

+ 22 - 13
Vagrantfile

@@ -1,20 +1,29 @@
 Vagrant.configure("2") do |config|
 
-  config.vm.define "node01" do |node01|
-    node01.vm.box = "ARTACK/debian-jessie"
-    node01.vm.hostname = "node01"
-    node01.vm.network :private_network, ip: "192.168.0.42"
+  N = 2
+  (1..N).each do |machine_id|
+    config.vm.define "node0#{machine_id}" do |node|
+      node.vm.box = "ARTACK/debian-jessie"
+      node.vm.hostname = "machine0#{machine_id}"
+      node.vm.network "private_network", ip: "192.168.77.#{20+machine_id}"
 
-    node01.vm.provider :virtualbox do |vb|
-      vb.customize [
-        "modifyvm", :id,
-        "--cpuexecutioncap", "50",
-        "--memory", "256",
-      ]
-    end
+      node.vm.provider :virtualbox do |vb|
+        vb.customize [
+          "modifyvm", :id,
+          "--cpuexecutioncap", "50",
+          "--memory", "256",
+        ]
+      end
+
+      if machine_id == N
+        node.vm.provision :ansible do |ansible|
+          ansible.playbook = "playbook.yml"
 
-    node01.vm.provision "ansible" do |ansible|
-      ansible.playbook = "playbook.yml"
+          ansible.groups = {
+            "supernodes" => ["node01", "node02"],
+          }
+        end
+      end
     end
   end
 end