# -*- mode: ruby -*-
# vi: set ft=ruby ts=2 sw=2 tw=0 et :

role = File.basename(File.expand_path(File.dirname(__FILE__)))

boxes = [
  {
    :name => "ubuntu-1604",
    :box => "bento/ubuntu-16.04",
    :ip => '10.0.0.12',
    :cpu => "50",
    :ram => "256"
  },
  {
    :name => "ubuntu-1804",
    :box => "bento/ubuntu-18.04",
    :ip => '10.0.0.13',
    :cpu => "50",
    :ram => "384"
  },
  {
    :name => "ubuntu-2004",
    :box => "bento/ubuntu-20.04",
    :ip => '10.0.0.14',
    :cpu => "50",
    :ram => "384"
  },
  {
    :name => "debian-8",
    :box => "bento/debian-8",
    :ip => '10.0.0.16',
    :cpu => "50",
    :ram => "256"
  },
  {
    :name => "debian-9",
    :box => "bento/debian-9",
    :ip => '10.0.0.17',
    :cpu => "50",
    :ram => "256"
  },
  {
    :name => "debian-10",
    :box => "bento/debian-10",
    :ip => '10.0.0.18',
    :cpu => "50",
    :ram => "256"
  },
]

Vagrant.configure("2") do |config|
  boxes.each do |box|
    config.vm.define box[:name] do |vms|
      vms.vm.box = box[:box]
      vms.vm.hostname = "ansible-#{role}-#{box[:name]}"

      vms.vm.provider "virtualbox" do |v|
        v.customize ["modifyvm", :id, "--cpuexecutioncap", box[:cpu]]
        v.customize ["modifyvm", :id, "--memory", box[:ram]]
      end

      vms.vm.network :private_network, ip: box[:ip]

      vms.vm.provision :ansible do |ansible|
        ansible.playbook = "tests/vagrant.yml"
        ansible.verbose = "vv"
      end
    end
  end
end