Meine Frage bezieht sich auf hier , aber ich mach es nicht zur Arbeit.
Ich benutze eine vorgefertigte Landstreicherbox von vagrantbox.es ( Ссылка ) und ich möchte einige Änderungen vornehmen und das neue virtuelle Paket neu packen Maschine in eine neue Landstreicher Box-Datei.
Um das erste Feld zu erhalten, füge ich config.vm.box_url = "http://goo.gl/KwQSa2"
zu meiner Vagrant-Datei hinzu.
Nach dem Aufruf von vagrant up
mache ich vagrant ssh
und dann eine Operation (z. B. touch testfile.txt
).
Nach dem Abmelden benutze ich vagrant package
, was package.box
erzeugt.
Dann mache ich vagrant destroy
, füge den Pfad zu package.box
zu config.vm.box_url
in meiner Vagrant-Datei hinzu und mache wieder vagrant up
.
Wenn ich mich bei der VM anmelde, ist mein testfile.txt
nicht da, also sieht es so aus, als hätte ich die unveränderte Box gepackt.
Ich habe versucht, andere Dinge wie vagrant box repackage
ohne Erfolg.
Was fehlt mir hier?
Wenn Sie ein Paket erstellen, müssen Sie die UUID der neuen erstellten VM (by vagrant up
) basierend auf der Basisbox angeben.
HINWEIS: Wenn Sie VirtualBox verwenden, erstellt es eine neue VM mit dem Namen - base_box_name-default-UUID.
Beim Ausführen
vagrant package --base name --output /path/to/name.box
Der Name --base NAME
sollte entweder der Name der neuen VM oder seine UUID sein.
Sie können es mit dem folgenden Befehl abrufen:
%Vor%Tags und Links virtual-machine vagrant virtualbox