Vagrant kann während der Bereitstellung nicht wissen, dass der Computer neu gestartet wird.
Wenn möglich, wäre es das Beste, hier einen Neustart ganz zu vermeiden. Beispielsweise sollten Kernel-Updates bereits beim Bau der Basisbox durchgeführt werden.
Eine weitere einfache (aber nicht sehr bequeme) Möglichkeit besteht darin, dies mit Protokollausgaben oder Dokumentationen oder mit einem Wrapper-Skript zu handhaben, das vagrant up && vagrant reload
aufruft .
Und schließlich könnten Sie ein Plug-in schreiben, das alle erforderlichen Mounting-Aktionen usw. nach der Bereitstellung in den Vagrant-Middleware-Stack einfügt, aber Sie müssten immer noch darüber nachdenken, wie Sie das Plug-in wissen lassen, dass die Maschine gebootet wurde. Eine weitere Herausforderung besteht darin, dass dies leicht anbieterspezifisch wird.
Sie sollten in der Lage sein, die Dateisysteme zu /etc/fstab hinzuzufügen, um sie beim Booten zu mounten.
Hier ist mein Beispiel:
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
Ihr Vagrant-Verzeichnis sollte ein verstecktes .vagrant-Verzeichnis enthalten, und darin sollten Sie einen Pfad zur Datei "synced_folders" finden (in meinem Fall:/vagrant/.vagrant/machines/default/virtualbox/synced_folders
).
Diese Datei sollte Ihnen dabei helfen, herauszufinden, was die Labels und ihre Einhängepunkte sind:
{"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}}}
Es ist nicht am einfachsten zu lesen, aber unter Verwendung der Python-Terminologie scheinen die Labels die Schlüssel des inneren Wörterbuchs zu sein, mit / übersetzt in _ (z. B.:der Schlüssel /home/vagrant/presenter-src wurde zum Label home_vagrant_presenter-src).
Ich bin mir eigentlich nicht sicher, warum Vagrant nicht einfach /etc/fstab für freigegebene Ordner verwendet, aber ich vermute, dass es einen guten Grund gibt.