# -*- 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