Vagrant n'a aucun moyen de savoir que la machine est en cours de redémarrage pendant le provisionnement.
Si possible, le mieux serait d'éviter de redémarrer complètement ici. Par exemple, les mises à jour du noyau doivent déjà être effectuées lors de la construction de la boîte de base.
Un autre moyen simple (mais pas très pratique) consiste à le gérer avec une sortie de journal ou une documentation, ou avec un script wrapper qui appelle vagrant up && vagrant reload
.
Et enfin, vous pouvez écrire un plugin qui injecte toutes les actions de montage, etc. nécessaires dans la pile middleware Vagrant après le provisionnement, mais vous devez toujours réfléchir à la façon de faire savoir au plugin que la machine a été démarrée. L'autre défi est que cela devient facilement spécifique au fournisseur.
Vous devriez pouvoir ajouter les systèmes de fichiers à /etc/fstab pour les monter au démarrage.
Voici mon exemple :
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
Votre répertoire vagrant devrait contenir un répertoire caché .vagrant, et vous devriez y trouver un chemin vers le fichier "synced_folders" (dans mon cas :/vagrant/.vagrant/machines/default/virtualbox/synced_folders
).
Ce fichier devrait vous aider à déterminer quelles sont les étiquettes et leurs points de montage :
{"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}}}
Ce n'est pas le plus facile à lire mais, en utilisant la terminologie python, les étiquettes semblent être les clés du dictionnaire interne, avec / traduit en _ (par exemple :la clé /home/vagrant/presenter-src est devenue l'étiquette home_vagrant_presenter-src).
En fait, je ne sais pas pourquoi vagrant n'utilise pas simplement /etc/fstab pour les dossiers partagés, mais je suppose qu'il y a une bonne raison.