Non c'è modo per Vagrant di sapere che la macchina viene riavviata durante il provisioning.
Se possibile, la cosa migliore sarebbe evitare del tutto il riavvio qui. Ad esempio, gli aggiornamenti del kernel dovrebbero essere già stati eseguiti durante la creazione della scatola base.
Un altro modo semplice (ma non molto conveniente) è gestirlo con l'output del log o la documentazione, o con uno script wrapper che invoca vagrant up && vagrant reload
.
E infine, potresti scrivere un plug-in che inietta tutte le azioni di montaggio necessarie ecc. Nello stack del middleware Vagrant dopo il provisioning, ma dovresti comunque pensare a come far sapere al plug-in che la macchina è stata avviata. Un'altra sfida è che questo diventa facilmente specifico del provider.
Dovresti essere in grado di aggiungere i filesystem a /etc/fstab da montare all'avvio.
Ecco il mio esempio:
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
La tua directory vagabonda dovrebbe contenere una directory nascosta .vagrant, e lì dovresti trovare un percorso per il file "synced_folders" (nel mio caso:/vagrant/.vagrant/machines/default/virtualbox/synced_folders
).
Quel file dovrebbe aiutarti a capire cosa sono le etichette e i loro punti di montaggio:
{"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}}}
Non è il più facile da leggere ma, usando la terminologia di Python, le etichette sembrano essere le chiavi del dizionario interno, con / tradotto in _ (es:la chiave /home/vagrant/presenter-src è diventata l'etichetta home_vagrant_presenter-src).
In realtà non sono sicuro del perché vagabondo non usi solo /etc/fstab per le cartelle condivise, ma immagino che ci sia una buona ragione.