É exatamente isso que o plugin vagrant-reload serve. Depois de instalar, basta adicionar config.vm.provision :reload
no ponto do provisionamento que você deseja recarregar.
Novato relativo ao Vagrant aqui, tentando eliminar o processo de instalação manualmente toda vez que eu quero criar uma nova VM Ubuntu.
Meu processo usual, depois de concluir a instalação, é atualizar todo o software da máquina com apt-get update
e apt-get dist-upgrade -y
e, em seguida, reinicializá-lo para garantir que todas as atualizações entrem em vigor. Para esse fim, eu fiz um Vagrantfile assim:
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
Isso faz principalmente o trabalho - eu posso ver a saída da VM como a atualização de pacotes - mas depois que ele reinicia e eu vagrant ssh
nele, nenhum dos meus arquivos aparece em /vagrant
. Estou assumindo que a pasta compartilhada não está sendo remontada por algum motivo.
Acho que minha primeira pergunta é: faz sentido atualizar o sistema dessa maneira como parte de um provisionador de shell? E, em caso afirmativo, como reinicializar o guest e ainda ter o compartilhamento /vagrant
montado?
É exatamente isso que o plugin vagrant-reload serve. Depois de instalar, basta adicionar config.vm.provision :reload
no ponto do provisionamento que você deseja recarregar.
Tags virtualbox vagrant ubuntu