Wie starte ich einen Vagrant-Gast von einem Provisioner neu?

457
DarkMorford

Relativer Neuling bei Vagrant, der versucht, den Installationsvorgang jedes Mal, wenn ich eine neue Ubuntu-VM starten möchte, manuell zu beenden.

Nach Abschluss der Installation ist es üblich, die gesamte Computersoftware mit apt-get updateund zu aktualisieren und apt-get dist-upgrade -yanschließend neu zu starten, um sicherzustellen, dass alle Upgrades wirksam werden. Zu diesem Zweck habe ich eine Vagrantfile gemacht:

Vagrant.configure("2") do |config| config.vm.box = "ubuntu/xenial64" config.vm.provider "virtualbox" do |vb| vb.memory = "4096" end  config.vm.provision "shell", inline: <<-SHELL apt-get update apt-get dist-upgrade -y shutdown -r now SHELL end 

Dies erledigt meistens den Job - ich kann die Ausgabe von der VM beim Aktualisieren der Pakete sehen - aber nachdem er neu gestartet wurde und ich mich vagrant sshdarin befand, werden keine meiner Dateien in angezeigt /vagrant. Ich gehe davon aus, dass der freigegebene Ordner aus irgendeinem Grund nicht erneut bereitgestellt wird.

Ich denke, meine erste Frage lautet: Ist es sinnvoll, das System als Teil eines Shell Provisioners so zu aktualisieren? Und wenn ja, wie kann ich den Gast neu starten und die /vagrantFreigabe trotzdem eingehängt haben?

1

1 Antwort auf die Frage

1
l0b0

Genau dafür ist das Plugin vagrant-reload gedacht. Nach der Installation fügen config.vm.provision :reloadSie sie einfach an der Stelle in der Bereitstellung hinzu, die Sie neu laden möchten.