# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  config.vm.provider "virtualbox"

  if Vagrant.has_plugin?("vagrant-vbguest")
    config.vbguest.auto_update = false
  end
  config.ssh.forward_agent = false
  config.ssh.insert_key = false
  config.vm.graceful_halt_timeout=30

  config.vm.define :windows2022, primary: true, autostart: true do |win2022|
    win2022.vm.boot_timeout = 3600
    win2022.vm.box =  "jborean93/WindowsServer2022"
    win2022.vm.communicator = "winrm"
    win2022.vm.guest = :windows
    win2022.vm.hostname = "windows2022"
    win2022.vm.network :forwarded_port, guest: 3389, host: 3389, id: 'rdp', auto_correct: true
    win2022.vm.network :forwarded_port, guest: 5986, host: 45986, id: 'winrms', auto_correct: false
    win2022.winrm.password = "vagrant"
    win2022.winrm.username = "vagrant"
    win2022.vm.provider "virtualbox" do |vb|
      vb.default_nic_type = "virtio"
      vb.cpus = 4
      vb.customize [
        "modifyvm", :id,
        "--audio", "none",
        "--graphicscontroller", "VBoxSVGA",
        "--memory", "4096",
        "--natdnshostresolver1", "on",
        "--cableconnected1", "on",
      ]
      vb.customize ["setextradata", "global", "GUI/SuppressMessages", "all" ]
      vb.gui = true
      vb.name = "windows2022"
    end
  end

  config.vm.provision "ansible" do |ansible|
    ansible.compatibility_mode = "2.0"
    ansible.playbook = "playbook.yml"
    ansible.galaxy_roles_path = "roles"
    ansible.inventory_path = "inventory/vagrant.ini"
    ansible.verbose = "v"
    ansible.groups = {
      "windows" => ["windows2022"]
    }
  end
end
