Base for saltstack server
[ccsdk/distribution.git] / saltstack-server / src / main / vagrant / Vagrantfile-sample
diff --git a/saltstack-server/src/main/vagrant/Vagrantfile-sample b/saltstack-server/src/main/vagrant/Vagrantfile-sample
new file mode 100644 (file)
index 0000000..5fbcfbb
--- /dev/null
@@ -0,0 +1,69 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+  os = "bento/ubuntu-16.04"
+  net_ip = "192.168.50"
+
+  config.vm.define :master, primary: true do |master_config|
+    master_config.vm.provider "virtualbox" do |vb|
+        vb.memory = "2048"
+        vb.cpus = 1
+        vb.name = "master"
+    end
+      master_config.vm.box = "#{os}"
+      master_config.vm.host_name = 'saltmaster.local'
+      master_config.vm.network "private_network", ip: "#{net_ip}.10"
+      master_config.vm.synced_folder "saltstack/salt/", "/srv/salt"
+      master_config.vm.synced_folder "saltstack/pillar/", "/srv/pillar"
+
+      master_config.vm.provision :salt do |salt|
+        salt.master_config = "saltstack/etc/master"
+        salt.master_key = "saltstack/keys/master_minion.pem"
+        salt.master_pub = "saltstack/keys/master_minion.pub"
+        salt.minion_key = "saltstack/keys/master_minion.pem"
+        salt.minion_pub = "saltstack/keys/master_minion.pub"
+        salt.seed_master = {
+                            "minion1" => "saltstack/keys/minion1.pub",
+                            "minion2" => "saltstack/keys/minion2.pub"
+                           }
+
+        salt.install_type = "stable"
+        salt.install_master = true
+        salt.no_minion = true
+        salt.verbose = true
+        salt.colorize = true
+        salt.bootstrap_options = "-P -c /tmp"
+      end
+    end
+
+
+    [
+      ["minion1",    "#{net_ip}.11",    "1024",    os ],
+      ["minion2",    "#{net_ip}.12",    "1024",    os ],
+    ].each do |vmname,ip,mem,os|
+      config.vm.define "#{vmname}" do |minion_config|
+        minion_config.vm.provider "virtualbox" do |vb|
+            vb.memory = "#{mem}"
+            vb.cpus = 1
+            vb.name = "#{vmname}"
+        end
+        minion_config.vm.box = "#{os}"
+        minion_config.vm.hostname = "#{vmname}"
+        minion_config.vm.network "private_network", ip: "#{ip}"
+
+        minion_config.vm.provision :salt do |salt|
+          salt.minion_config = "saltstack/etc/#{vmname}"
+          salt.minion_key = "saltstack/keys/#{vmname}.pem"
+          salt.minion_pub = "saltstack/keys/#{vmname}.pub"
+          salt.install_type = "stable"
+          salt.verbose = true
+          salt.colorize = true
+          salt.bootstrap_options = "-P -c /tmp"
+        end
+      end
+    end
+  end
\ No newline at end of file