4 # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
5 VAGRANTFILE_API_VERSION = "2"
7 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
8 os = "bento/ubuntu-16.04"
11 config.vm.define :master, primary: true do |master_config|
12 master_config.vm.provider "virtualbox" do |vb|
17 master_config.vm.box = "#{os}"
18 master_config.vm.host_name = 'saltmaster.local'
19 master_config.vm.network "private_network", ip: "#{net_ip}.10"
20 master_config.vm.synced_folder "saltstack/salt/", "/srv/salt"
21 master_config.vm.synced_folder "saltstack/pillar/", "/srv/pillar"
23 master_config.vm.provision :salt do |salt|
24 salt.master_config = "saltstack/etc/master"
25 salt.master_key = "saltstack/keys/master_minion.pem"
26 salt.master_pub = "saltstack/keys/master_minion.pub"
27 salt.minion_key = "saltstack/keys/master_minion.pem"
28 salt.minion_pub = "saltstack/keys/master_minion.pub"
30 "minion1" => "saltstack/keys/minion1.pub",
31 "minion2" => "saltstack/keys/minion2.pub"
34 salt.install_type = "stable"
35 salt.install_master = true
39 salt.bootstrap_options = "-P -c /tmp"
45 ["minion1", "#{net_ip}.11", "1024", os ],
46 ["minion2", "#{net_ip}.12", "1024", os ],
47 ].each do |vmname,ip,mem,os|
48 config.vm.define "#{vmname}" do |minion_config|
49 minion_config.vm.provider "virtualbox" do |vb|
54 minion_config.vm.box = "#{os}"
55 minion_config.vm.hostname = "#{vmname}"
56 minion_config.vm.network "private_network", ip: "#{ip}"
58 minion_config.vm.provision :salt do |salt|
59 salt.minion_config = "saltstack/etc/#{vmname}"
60 salt.minion_key = "saltstack/keys/#{vmname}.pem"
61 salt.minion_pub = "saltstack/keys/#{vmname}.pub"
62 salt.install_type = "stable"
65 salt.bootstrap_options = "-P -c /tmp"