# -*- 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.require_version '>= 1.6.0'

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "PierrickL/win2012r2trial"

  config.vm.guest = :windows
  config.vm.communicator = "winrm"

  config.vm.synced_folder ".", "/vagrant"

  config.vm.provider "virtualbox" do |vb|
    # Don't boot with headless mode
    vb.gui = true
    vb.customize ["modifyvm", :id, "--memory", "2048"]
    vb.customize ["modifyvm", :id, "--ioapic", "on"] # If you don't set this, you won't be able to assign multiple CPUs to the VM
    vb.customize ["modifyvm", :id, "--cpus", "2"]
  end

  config.vm.provision "shell", inline: "chocolatey install git"
  config.vm.provision "shell", inline: "chocolatey install vim"
  config.vm.provision "shell", inline: "chocolatey install puppet"
  config.vm.provision "puppet" do |puppet|
    puppet.manifests_path = "."
    puppet.manifest_file  = "puppetforge-certificate.pp"
  end
  config.vm.provision "shell", inline: "puppet module install gildas-firewall"
  config.vm.provision "shell", inline: "cd C:/ProgramData/PuppetLabs/puppet/etc/modules ; if (Test-Path sqlserver) { cd sqlserver git pull } else { git clone https://github.com/gildas/puppet-sqlserver sqlserver }"

  config.vm.provision "puppet" do |puppet|
    puppet.manifests_path = "."
    puppet.manifest_file  = "init.pp"
  end
end
