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

  config.vm.box = 'arbitrary_name'
  # useful for:
  # $ vagrant box remove arbitrary_name
  # needs: virsh vol-list --pool default | cut -d' ' -f2 | tail -n +3 | grep -v ^$ | xargs -n1 virsh vol-delete --pool default"
  # especially, we could:
  #

  config.vm.provider :libvirt do |libvirt|
    libvirt.memory = 512
    libvirt.cpus = 2
  end

  config.vm.provider "virtualbox" do |v|
      v.memory = 1024
  end

  config.vm.provision "shell", run: 'always',
      inline: "echo Hello, World"

  config.vm.provision "shell", inline: <<EOL
      git clone ...
      dnf install ...
      tmt run local ...
  EOL

  config.vm.provision "shell", path: "https://example.com/provisioner.sh"

  config.vm.provision "docker" do |d|
    d.pull_images "ubuntu"
    d.pull_images "vagrant"
  end

  # $ vagrant provision --provision-with bootstrap.
  config.vm.provision "bootstrap", type: "shell", run: "never" do |s|
    s.inline = "echo hello"
  end
  # +    preserve_order: true,

  config.vm.provision "ansible_local" do |ansible|
    ansible.playbook = "playbook.yml"
  end

  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "playbook.yml"
  end

end
