No hay forma de que Vagrant sepa que la máquina se está reiniciando durante el aprovisionamiento.
Si es posible, lo mejor sería evitar reiniciar aquí por completo. Por ejemplo, las actualizaciones del kernel ya deberían estar hechas al construir la caja base.
Otra forma fácil (pero no muy conveniente) es manejarlo con salida de registro o documentación, o con una secuencia de comandos contenedora que invoca vagrant up && vagrant reload
.
Y finalmente, podría escribir un complemento que inyecte todas las acciones de montaje, etc. necesarias en la pila de middleware de Vagrant después del aprovisionamiento, pero aún tendría que pensar cómo hacer que el complemento sepa que la máquina se ha iniciado. Otro desafío es que esto fácilmente se vuelve específico del proveedor.
Debería poder agregar los sistemas de archivos a /etc/fstab para montarlos en el arranque.
Aquí está mi ejemplo:
vagrant /vagrant vboxsf defaults 0 0
home_vagrant_src /home/vagrant/src vboxsf defaults 0 0
home_vagrant_presenter-src /home/vagrant/presenter-src vboxsf defaults 0 0
Su directorio vagabundo debe tener un directorio oculto .vagrant, y allí debe encontrar una ruta al archivo "synced_folders" (en mi caso:/vagrant/.vagrant/machines/default/virtualbox/synced_folders
).
Ese archivo debería ayudarlo a descubrir cuáles son las etiquetas y sus puntos de montaje:
{"virtualbox":{"/home/vagrant/src":{"guestpath":"/home/vagrant/src","hostpath":"/home/rkomorn/src","disabled":false,"__vagrantfile":true},"/home/vagrant/presenter-src":{"guestpath":"/home/vagrant/presenter-src","hostpath":"/home/presenter/src","disabled":false,"__vagrantfile":true},"/vagrant":{"guestpath":"/vagrant","hostpath":"/home/rkomorn/vagrant","disabled":false,"__vagrantfile":true}}}
No es el más fácil de leer pero, utilizando la terminología de Python, las etiquetas parecen ser las claves del diccionario interno, con / traducida a _ (p. ej.:la clave /home/vagrant/presenter-src se convirtió en la etiqueta home_vagrant_presenter-src).
De hecho, no estoy seguro de por qué Vagrant no solo usa /etc/fstab para las carpetas compartidas, pero supongo que hay una buena razón.