Para poder editar desde Vagrant el archivo hosts del sistema operativo anfitrión, primero necesitamos instalar un plugin a Vagrant llamado Hostsupdater.

Lo instalamos con el comando:

$ vagrant plugin install vagrant-hostsupdater

Ya que los dominios necesitan una IP a la que apuntar, es obligatorio configurar en nuestro fichero Vagrantfile una IP privada para nuestra máquina virtual:

config.vm.network 'private_network', ip: '10.0.0.100'

Y para añadir los dominios lo hacemos con la línea:

config.hostsupdater.aliases = ["alias.testing.vm", "somedomain.vm"]

Sólo nos quedaría añadir las líneas a nuestro archivo Vagrantfile:

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

Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu/trusty64"
  config.vm.hostname = "www.testing.vm"
  config.vm.network 'private_network', ip: '10.0.0.100'
  
  config.hostsupdater.aliases = ["alias.testing.vm", "somedomain.vm"]

end

IMPORTANTE: Si el plugin detecta algún valor configurado en el parámetro config.vm.hostname también lo añadirá al archivo hosts.

Una vez configurado nuestro Vagrantfile con todo lo necesario, para añadir los dominios basta con encender la máquina si la teníamos apagada:

$ vagrant up

O por el contrario reiniciarla si la tenemos encendida:

$ vagrant reload

IMPORTANTE: El archivo hosts se modifica tanto al arrancar la máquina para añadir las líneas necesarias, como al apagarla para eliminarlas y así dejar el fichero limpio. Nos pedirá la contraseña del usuario administrador/root para poder hacerlo ya que el archivo hosts es un archivo del sistema.