J'ai une boîte vagabonde en place (configurée avec une pile LAMP). Je dois le transférer sur un autre PC. Comment puis-je l'exporter? Je suppose que je peux obtenir un fichier (ou des fichiers) qui peuvent être copiés sur un autre PC, afin que je puisse exécuter une commande pour importer la boîte vagrant.
Vous avez deux façons de faire cela, je l'appellerai comme sale et comme propre :
1. Le chemin sale
Créez une boîte à partir de votre environnement virtuel actuel, en utilisant la commande vagrant package
:
http://docs.vagrantup.com/v2/cli/package.html
Copiez ensuite la boîte sur l’autre ordinateur, ajoutez-la en utilisant vagrant box add
et exécutez-la en utilisant vagrant up
comme d’habitude.
N'oubliez pas que les fichiers de votre répertoire de travail (celui avec le Vagrantfile
) sont partagés au démarrage de la machine virtuelle. Vous devez donc également les copier sur l'autre ordinateur.
2. La manière propre
Théoriquement, il ne devrait jamais être nécessaire d'exporter/importer avec Vagrant. Si vous avez la clairvoyance d'utiliser le provisioning pour configurer l'environnement virtuel (chef, marionnette, ansible) et un système de contrôle de version tel que git pour votre répertoire de travail, copier un environnement serait alors simple:
git clone <your_repo>
vagrant up
Mon disque dur de mon Mac émettait des bips sonores au milieu d'un projet, j'ai donc décidé d'installer un disque SSD. Je devais déplacer mon projet d'un disque à un autre. Quelques points à considérer:
C'est ce qui a fonctionné pour moi:
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`
J'ai eu quelques problèmes avec VB Ajouts d'invités.
Je les ai fixés avec cette solution .
C'est en fait assez simple
Enveloppez votre machine à vagabond
vagrant package --base [machine name as it shows in virtual box] --output /Users/myuser/Documents/Workspace/my.box
copier la boîte sur votre télécommande
initialiser la boîte sur votre machine distante en exécutant
vagrant init [machine name as it shows in virtual box] /Users/myuser/Documents/Workspace/my.box
Exécuter vagrant up
Le moyen le plus simple consiste à empaqueter la boîte Vagrant, puis à la copier (par exemple, scp
ou rsync
) sur l’autre PC, l’ajouter et vagrant up
;-)
Pour des étapes détaillées, consultez ceci =>
Existe-t-il un moyen de cloner une boîte vagabonde déjà installée
Aucune des réponses ci-dessus n'a fonctionné pour moi. Cela fait 2 jours que je prépare le moyen de migrer une machine Vagrant + VirtualBox d’un ordinateur à un autre ... C’est possible!
Tout d'abord, vous devez comprendre que la machine virtuelle est séparée de votre dossier sync/shared. Ainsi, lorsque vous emballez votre machine, vous l’emballez sans vos fichiers, mais avec les bases de données.
Qu'as tu besoin de faire:
1- Ouvrez le CMD de votre ordinateur 1 Ordinateur hôte (Ligne de commande. Ouvrez-le en tant qu'administrateur avec le bouton droit -> "Exécuter en tant qu'administrateur") et allez dans vos fichiers d'installation vagabonds. Sur mon cas: C:/VVV Vous verrez votre Vagrantfile ainsi que ces dossiers:
/config/
/database/
/log/
/provision/
/www/
Vagrantfile
...
Le dossier/www/contient mon dossier de synchronisation avec mes domaines de développement. Vous pouvez avoir votre dossier de synchronisation ailleurs, assurez-vous simplement de bien comprendre ce que vous faites. Aussi/config et/database sont des dossiers de synchronisation.
2- Exécutez cette commande: vagrant package --vagrantfile Vagrantfile
(Cette commande effectue un package de votre machine virtuelle en utilisant votre configuration Vagrantfile.)
Voici ce que vous pouvez lire dans la documentation de Vagrant sur la commande:
Une idée fausse répandue est que l'option --vagrantfile conditionnera un fichier Vagrant utilisé lorsque vagrant init est utilisé avec cette boîte. Ce n'est pas le cas. Au lieu de cela, un fichier Vagrant est chargé et lu dans le cadre du processus de chargement Vagrant lorsque la boîte est utilisée. Pour plus d'informations, consultez l'ordre de chargement de Vagrantfile.
https://www.vagrantup.com/docs/cli/package.html
Une fois terminé, vous aurez un fichier package.box.
3- Copiez tous ces fichiers (/ config,/database, Vagrantfile, package.box, etc.) et collez-les sur votre ordinateur 2 juste à vouloir installer votre machine virtuelle (dans mon cas, D:/VVV).
Maintenant, vous avez une copie de tout ce dont vous avez besoin sur votre ordinateur 2 Host.
4- lancez ceci: vagrant box add package.box --name VVV
(Le --name est utilisé pour nommer votre machine virtuelle. Dans mon cas, il s'appelle VVV) (Vous pouvez utiliser --force si vous avez déjà une machine virtuelle avec ce nom et souhaitez l'écraser. (Utilisez-le avec précaution!))
Cela décompactera votre nouvelle machine virtuelle vagabonde.
5- Une fois terminé, exécutez: vagrant up
La machine va s'installer et vous devriez la voir sur le "Gestionnaire de la machine virtuelle Oracle". Si vous ne voyez pas la machine virtuelle, essayez d'exécuter la zone Oracle VM en tant qu'administrateur (clic droit -> Exécuter en tant qu'administrateur).
Vous pouvez maintenant tout avoir bien, mais n'oubliez pas de voir si vos hôtes sont comme vous le souhaitiez:
c:/windows/system32/hosts
6- C'est peut-être une bonne idée de copier votre fichier hôte de votre ordinateur 1 sur votre ordinateur 2. Ou de copier les lignes dont vous avez besoin. Dans mon cas, ce sont les hôtes dont j'ai besoin:
192.168.50.4 test.dev
192.168.50.4 vvv.dev
...
Où 192.168.50.4 est l'IP de ma machine virtuelle et où test.dev et vvv.dev développent des hôtes.
J'espère que cela pourra vous aider :) Je serai heureux si vous recevez vos commentaires.
Quelques particularités de mon cas que vous pouvez trouver:
Quand j'ai couru vers le haut, il y avait un problème avec MySQL, cela ne fonctionnait pas. Je devais exécuter sur le serveur virtuel (clic droit sur la machine virtuelle Oracle -> Afficher la console): apt-get install mysql-server
Après cela, je me suis à nouveau retrouvé vagabond et tout fonctionnait mais sans données sur les bases de données. J'ai donc fait un mysqldump all-tables à partir de l'ordinateur 1 et les télécharger sur l'ordinateur 2.
AUTRES NOTES: Ma machine virtuelle ne se trouve pas exactement sur les ordinateurs 1 et 2. Par exemple, j’ai fait une configuration interne il y a quelque temps pour utiliser NFS (pour accélérer dans les dossiers de synchronisation du serveur) et j’ai dû relancer cette commande sur l’ordinateur 2: vagrant plugin install vagrant-winnfsd
Comme indiqué dans
Comment puis-je changer où Vagrant cherche son disque dur virtuel?
l'état de la machine virtuelle est stocké dans un dossier VirtualBox prédéfini. La copie de la machine (dossier) correspondante à côté de votre projet vagrant sur votre autre hôte doit préserver l'état de votre machine virtuelle.
En 2019, il existe une sous-commande: vagrant box repackage
vagrant box repackage --help
Usage: vagrant box repackage <name> <provider> <version>
-h, --help Print this help
Vous pouvez trouver name
provider
et version
en exécutant vagrant box list
vagrant box list
macinbox (virtualbox, 10.14.5)
La sortie de vagrant box repackage
est un fichier appelé package.box
qui est essentiellement un fichier tgz dont le contenu peut être répertorié comme suit:
tar tzf package.box
./metadata.json
./box.ovf
./Vagrantfile
./box-disk001.vmdk