# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| # Use this box as base for all machines config.vm.box = "debian/buster64" # Define primary salt-master vm config.vm.define "salt-master", primary: true do |master| master.vm.hostname = "salt-master" # Define network for salt management master.vm.network "private_network", ip: "10.254.254.2", virtualbox__intnet: "salt-management" # Sync salt pillar + state files here master.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: [".git/",] # Provide dependencies (also for gitfs) master.vm.provision :shell, :inline => "sudo apt-get -y install git-core python3-pygit2 python3-setuptools python3-tornado" # Symlink states + pillar to /srv master.vm.provision :shell, :inline => "ln -s /vagrant/saltstack/salt /srv/" master.vm.provision :shell, :inline => "ln -s /vagrant/saltstack/pillar /srv/" # Use vagrant salt provisioner (uses most recent salt-bootstrap script) # See https://www.vagrantup.com/docs/provisioning/salt.html master.vm.provision :salt do |salt| salt.bootstrap_options = '-F -c /tmp/ -P -x python3' salt.colorize = true salt.install_master = true salt.minion_config = "saltstack/config/minion-master" salt.master_config = "saltstack/config/master" salt.verbose = true end master.vm.provision :shell, :inline => "echo salt-master is up!" master.vm.provision :shell, :inline => "ip addr show" end # config.vm.define "salt-master" # Define two salt-minion vms (1..2).each do |i| config.vm.define "salt-minion-#{i}" do |minion| minion.vm.hostname = "salt-minion-#{i}" # Define network for salt management minion.vm.network "private_network", ip: "10.254.254.2#{i}", virtualbox__intnet: "salt-management" # Use vagrant salt provisioner (uses most recent salt-bootstrap script) # See https://www.vagrantup.com/docs/provisioning/salt.html minion.vm.provision :salt do |salt| salt.bootstrap_options = '-F -c /tmp/ -P -x python3' salt.colorize = true salt.install_master = false salt.masterless = false salt.minion_config = "saltstack/config/minion-#{i}" salt.verbose = true end minion.vm.provision :shell, :inline => "echo salt-minion #{i} is up!" minion.vm.provision :shell, :inline => "ip addr show" end # config.vm.define "salt-minion-#{i}" end # (1..2).each do |i| end # Vagrant.configure