it-swarm.com.de

So exportieren Sie eine virtuelle Vagrant-Maschine zum Übertragen

Ich habe eine Vagabund-Box in Betrieb (konfiguriert mit einem LAMP-Stack). Ich muss es auf einen anderen PC übertragen. Wie kann ich es exportieren? Ich vermute, dass ich eine Datei (oder Dateien) bekommen kann, die auf einen anderen PC kopiert werden kann, so dass ich dort einen Befehl ausführen kann, um die Vagrant-Box zu importieren.

98
Eugene

Sie haben zwei Möglichkeiten, dies zu tun, ich nenne es schmutziger Weg und sauberer Weg:

1. The dirty way

Erstellen Sie mit dem Befehl vagrant package Eine Box aus Ihrer aktuellen virtuellen Umgebung:

http://docs.vagrantup.com/v2/cli/package.html

Kopieren Sie dann die Box auf den anderen PC, fügen Sie sie mit vagrant box add Hinzu und führen Sie sie wie gewohnt mit vagrant up Aus.

Denken Sie daran, dass Dateien in Ihrem Arbeitsverzeichnis (das mit dem Vagrantfile) freigegeben werden, wenn die virtuelle Maschine gestartet wird, sodass Sie sie auch auf den anderen PC kopieren müssen.

2. Der sauber Weg

Theoretisch sollte es nie notwendig sein, mit Vagrant zu exportieren/importieren. Wenn Sie die Voraussicht haben, das Provisioning für die Konfiguration der virtuellen Umgebung (Chef, Marionette, Ansible) und ein Versionskontrollsystem wie git für Ihr Arbeitsverzeichnis zu verwenden, ist das Kopieren einer Umgebung an diesem Punkt ganz einfach:

git clone <your_repo>
vagrant up
111
Emyl

Meine Festplatte in meinem Mac machte während eines Projekts piepende Geräusche, und ich entschied mich, eine SSD zu installieren. Ich musste mein Projekt von einem Datenträger auf einen anderen verschieben. Ein paar Dinge zu beachten:

  • Ich bin ein Vagabund mit Virtualbox auf einem Mac
  • Ich benutze git

Das hat bei mir funktioniert:

1.) Copy your ~/.vagrant.d directory to your new machine.
2.) Copy your ~/VirtualBox\ VMs directory to your new machine. 
3.) In VirtualBox add the machines one by one using **Machine** >> **Add**
4.) Run `vagrant box list` to see if vagrant acknowledges your machines. 
5.) `git clone my_project`
6.) `vagrant up`

Ich hatte ein paar Probleme mit VB Guest Ergänzungen.

enter image description here

Ich habe sie behoben mit dieser Lösung .

26
Ken Prince

Das ist eigentlich ziemlich einfach

  1. Installieren Sie virtuelle Box und Vagabund auf dem Remote-Computer
  2. Wickeln Sie Ihre Vagabundmaschine ein

    vagrant package --base [machine name as it shows in virtual box] --output /Users/myuser/Documents/Workspace/my.box

  3. kopieren Sie die Box auf Ihre Fernbedienung

  4. starten Sie die Box auf Ihrem Remote-Computer, indem Sie sie ausführen

    vagrant init [machine name as it shows in virtual box] /Users/myuser/Documents/Workspace/my.box

  5. Lauf vagrant up

16
Stefan Diabo

Am einfachsten ist es, die Vagrant-Box zu verpacken und dann auf den anderen PC zu kopieren (z. B. scp oder rsync), sie hinzuzufügen und vagrant up ;-)

Detaillierte Anweisungen finden Sie in =>Gibt es eine Möglichkeit, eine bereits installierte Vagrant-Box zu klonen?

6
Terry Wang

Keine der obigen Antworten hat bei mir funktioniert. Ich habe 2 Tage daran gearbeitet, eine Vagrant + VirtualBox-Maschine von einem Computer auf einen anderen zu migrieren ... Es ist möglich!

Zunächst müssen Sie verstehen, dass die virtuelle Maschine von Ihrem synchronisierten/freigegebenen Ordner getrennt ist. Wenn Sie also Ihre Maschine packen, packen Sie sie ohne Ihre Dateien, aber mit den Datenbanken.

Was musst du machen:

1- Öffnen Sie die CMD Ihres Computers 1 Host-Maschine (Befehlszeile. Öffnen Sie sie als Administrator mit der rechten Taste -> "Als Administrator ausführen") und Gehen Sie zu Ihren vagrant installierten Dateien. In meinem Fall: C:/VVV Sie sehen Ihre Vagrantdatei und auch diese Ordner:

/config/
/database/
/log/
/provision/
/www/
Vagrantfile
...

Im Ordner/www/befindet sich mein Synchronisierungsordner mit meinen Entwicklungsdomänen. Möglicherweise haben Sie Ihren Synchronisierungsordner an einem anderen Ort. Stellen Sie jedoch sicher, dass Sie verstehen, was Sie tun. Auch/config und/database sind Synchronisierungsordner.

2- Führen Sie diesen Befehl aus: vagrant package --vagrantfile Vagrantfile

(Dieser Befehl erstellt ein Paket Ihrer virtuellen Maschine unter Verwendung Ihrer Vagrantfile-Konfiguration.)

Folgendes können Sie in der Vagrant-Dokumentation zum Befehl lesen:

Ein häufiges Missverständnis ist, dass die Option --vagrantfile eine Vagrantdatei packt, die verwendet wird, wenn Vagrant Init mit diesem Feld verwendet wird. Das ist nicht der Fall. Stattdessen wird eine Vagrant-Datei geladen und als Teil des Vagrant-Ladeprozesses gelesen, wenn die Box verwendet wird. Weitere Informationen finden Sie unter Vagrantfile-Ladereihenfolge.

https://www.vagrantup.com/docs/cli/package.html

Wenn Sie fertig sind, haben Sie eine package.box-Datei.

3- Kopieren Sie alle diese Dateien (/ config,/database, Vagrantfile, package.box, etc.) und fügen Sie sie auf Ihrem Computer 2 genau dort ein, wo Sie möchten möchte Ihre virtuelle Maschine installieren (auf meinem Fall D:/VVV).

Jetzt haben Sie eine Kopie von allem, was Sie auf Ihrem Computer 2 Host benötigen.

4-führe dies aus: vagrant box add package.box --name VVV

(Der --name wird verwendet, um Ihre virtuelle Maschine zu benennen. In meinem Fall heißt er VVV.) (Sie können --force verwenden, wenn Sie bereits eine virtuelle Maschine mit diesem Namen haben und diese überschreiben möchten. (Vorsichtig verwenden!))

Dadurch wird Ihre neue virtuelle Maschine entpackt.

5- Wenn Sie fertig sind, führen Sie Folgendes aus: vagrant up

Die Maschine wird installiert und sollte im "Oracle Virtual Machine Box Manager" angezeigt werden. Wenn Sie die virtuelle Maschine nicht sehen können, versuchen Sie, das Feld Oracle VM als Administrator auszuführen (Rechtsklick -> Als Administrator ausführen)

Möglicherweise ist jetzt alles in Ordnung, aber denken Sie daran, zu prüfen, ob Ihre Hosts Ihren Erwartungen entsprechen:

c:/windows/system32/hosts

6- Vielleicht ist es eine gute Idee, Ihre Host-Datei von Ihrem Computer 1 auf Ihren Computer 2 zu kopieren. Oder kopieren Sie die benötigten Zeilen. In meinem Fall sind dies die Hosts, die ich brauche:

192.168.50.4 test.dev
192.168.50.4 vvv.dev
...

Wobei 192.168.50.4 die IP meiner virtuellen Maschine ist und test.dev und vvv.dev Hosts entwickeln.

Ich hoffe, das kann dir helfen :) Ich freue mich, wenn du mir Feedback zu deiner Reise gibst.

Einige Besonderheiten meines Falls, die Sie möglicherweise finden:

Als ich auf Vagrant lief, gab es ein Problem mit MySQL, es funktionierte nicht. Ich musste auf dem virtuellen Server ausgeführt werden (Rechtsklick auf die virtuelle Oracle-Maschine -> Konsole anzeigen): apt-get install mysql-server

Danach lief ich wieder flott und alles funktionierte, aber ohne Daten in den Datenbanken. Also habe ich einen mysqldump all-tables von Computer 1 erstellt und auf Computer 2 hochgeladen.

ANDERE HINWEISE: Meine virtuelle Maschine befindet sich nicht genau auf Computer 1 und Computer 2. Ich habe beispielsweise vor einiger Zeit eine interne Konfiguration für die Verwendung von NFS vorgenommen (um die Geschwindigkeit zu erhöhen) und ich musste diesen Befehl auf dem Computer 2 Host erneut ausführen: vagrant plugin install vagrant-winnfsd

2
gtamborero

Wie angegeben in

Wie kann ich ändern, wo Vagrant nach seiner virtuellen Festplatte sucht?

der Status der virtuellen Maschine wird in einem vordefinierten VirtualBox-Ordner gespeichert. Wenn Sie die entsprechende Maschine (Ordner) neben Ihrem Vagrant-Projekt auf Ihren anderen Host kopieren, sollte der Status Ihrer virtuellen Maschine erhalten bleiben.

1
Manuel

Ab 2019 gibt es einen Unterbefehl: vagrant box repackage

vagrant box repackage --help 
Usage: vagrant box repackage <name> <provider> <version>
    -h, --help                       Print this help

Sie können nameprovider und version finden, indem Sie vagrant box list

vagrant box list
macinbox (virtualbox, 10.14.5)

Die Ausgabe von vagrant box repackage ist eine Datei mit dem Namen package.box Dies ist im Grunde eine TGZ-Datei, deren Inhalt wie folgt aufgelistet werden kann:

tar tzf package.box
./metadata.json
./box.ovf
./Vagrantfile
./box-disk001.vmdk
0
Tiago Lopo