Maintenir et synchroniser une machine virtuelle VirtualBox entre deux ordinateurs distincts

10

J'ai une machine virtuelle VirtualBox qui a un projet sur lequel je travaille. J'aimerais pouvoir utiliser cette machine virtuelle sur deux ordinateurs distincts afin de pouvoir travailler là où je me trouve à ce moment-là. J'ai vu des réponses sur le transfert, le clonage et la sauvegarde de machines virtuelles, mais rien sur la copie synchronisée et la copie.

Quel est le moyen le plus simple (le moins d'étapes ou le plus simple) ou le meilleur (le plus faible risque de problèmes) de conserver une seule image de machine virtuelle sur plusieurs ordinateurs?

Idéalement, je préférerais ne pas exécuter la machine virtuelle à partir d’un lecteur USB car l’un des deux ordinateurs possède très peu de ports USB, mais si cela est préférable, je le prendrai (je ne suis pas sûr qu’il existe aucun problème lié à l’exécution d’une machine virtuelle à partir d’un lecteur USB). Cependant, je prévois d'utiliser un lecteur USB pour transférer des fichiers entre ordinateurs.

rsgoheen
la source

Réponses:

8

Je pense que vous avez deux options ici: la première consiste à définir (dans les installations de Virtualbox sur les deux ordinateurs) le dossier dans lequel les ordinateurs virtuels sont stockés sur un type de disque dur portable ou distant; Si les ordinateurs que vous allez utiliser sont reliés entre eux sur un réseau, vous pouvez utiliser un dossier partagé. Sinon, je crains que la seule solution soit une clé USB ou un disque dur externe. Pour définir le dossier, allez à File > Preferences > General > Default Machine Folder. La vitesse de la clé USB pourrait constituer une limite pour la performance globale.

La deuxième solution, qui nécessite également une clé USB ou quelque chose de similaire (mais uniquement pour transporter vos fichiers de machine virtuelle), consiste à exporter et à importer manuellement la machine virtuelle souhaitée chaque fois que vous devez la transporter. Vous pouvez le faire en sélectionnant la machine virtuelle et aller avec File > Export Appliance et File > Import Appliance. En exportant, un fichier au format .ova sera créé. Il s’agit d’une archive qui contient tous les fichiers nécessaires à l’utilisation de la VM. En l’important dans une autre installation, vous aurez la même VM sur le deuxième ordinateur. De cette façon, vous utilisez la clé USB pour transporter simplement vos fichiers. Une fois réimportés, ils seront stockés et accessibles à partir de votre ordinateur. La vitesse USB n'est donc pas un problème.

Sekhemty
la source
4

Je sais que ce fil existe depuis un an, mais il s’agit du premier résultat de recherche sur Google concernant la question du partage d’une machine virtuelle entre deux sites.

VirtualBox vous permet de vous connecter à distance à une machine virtuelle en cours d'exécution à l'aide de RDP. Si vous ne voulez pas que la VM fonctionne en permanence, essayez de la lancer à distance.

Il existe une option pour "Autoriser les connexions multiples", vous n'avez donc même pas besoin de vous déconnecter d'un endroit avant de vous connecter depuis un autre.

Si vous ne pouvez pas héberger votre propre machine virtuelle, une recherche Google rapide a trouvé des fournisseurs qui hébergeraient vos images VirtulaBox à votre place.

Je n'ai jamais essayé tout ça ...

cjpembo
la source
4

Face exactement au même problème et je pense que je l'ai résolu.

Supposons que vous avez deux machines, A et B. Créez / préparez votre machine virtuelle en A. Après cela, prenez un instantané ou créez un clone lié (les deux fonctionnent, mais les étapes ultérieures diffèrent, vous en obtiendrez une, vous pourrez résoudre l'autre)

Maintenant, assurez-vous que vous avez une Virtualbox fraîchement installée dans B. Copiez les machines virtuelles ~ / .VirtualBox et ~ / VirtualBox de A à B avec une clé USB (étant donné qu’elles se trouvent sur des sites éloignés)

Maintenant, si vous avez choisi la méthode des instantanés, synchronisez le dossier ~ / VirtualBox VMs / YourVM / Snapshots jusqu’à ce que la taille soit suffisante. S'il s'agrandit, créez un autre instantané dans A, puis copiez le dossier YourVM dans B pour une fois et synchronisez ce nouveau fichier d'instantané dans le dossier Snapshots.

Si vous prenez un instantané ou créez un clone lié en A ou en B, ce rituel sera rompu, soyez prévenu

Testé en 5.0.20

Malkocoglu
la source
réponse très intriguinig. le ferais-tu encore aujourd'hui ou y a-t-il un meilleur moyen?
l--''''''---------''''''''''''
4

Je pense que la réponse de Sekhemty est le seul moyen de faire ce que vous voulez.

Mais pourquoi votre machine virtuelle doit-elle être déplacée? Pourquoi ne pas simplement déplacer vos projets? Configurez votre projet dans un git privé et poussez et tirez quand vous en avez besoin.

Une autre méthode à essayer, si vous devez maintenir la cohérence de la machine et que vous changez beaucoup de choses, consiste à utiliser une configuration de vagabondage et de chef / marionnette. Cela fonctionne en utilisant soit un chef (qui est une gemme de rubis) et une marionnette (je n'ai pas utilisé de marionnette) pour indiquer à vagabondie ce que vous voulez que votre VM intègre et installe.

Cela fonctionne en utilisant un script, en utilisant un chef ou une marionnette, et vagrant lit ce script lors du démarrage de la machine virtuelle. Si vous voulez que quelque chose soit installé, ajoutez-le simplement au script et s'il ne l'est pas déjà, il sera installé lorsque vous "vagabonderez"! Il m'a fallu un certain temps pour m'y habituer, une courbe d'apprentissage assez abrupte, mais c'est très efficace une fois que vous vous y habituez et cela signifie que vous devrez simplement vous déplacer dans un fichier de script plutôt que dans un ordinateur virtuel complet.

http://red-badger.com/blog/2013/02/21/automating-your-infrastructure-with-vagrant-chef- from-development-to-the-cloud/

boundless08
la source
2
Il ne s'agit pas seulement du code (qui va dans un référentiel) et de la configuration; c'est parce que la VM est mon environnement de développement. J'ai commencé à utiliser VirtualBox pour pouvoir travailler sous Ubuntu sur un ordinateur fonctionnant sous Windows. Cela me donnerait un environnement de développement cohérent lorsqu'il serait moins pratique de déplacer l'environnement que de déplacer une copie de celui-ci.
rsgoheen
Eh bien alors vagabond et chef / marionnette semble être le meilleur. Ainsi, si vous devez modifier quelque chose dans votre environnement de développement, vous n'avez pas besoin d'exporter ou d'importer votre machine virtuelle, vous ajoutez simplement ce que vous avez installé à votre script et vagrant le construira sur votre machine virtuelle au démarrage. C'est très pratique pour avoir différentes instances de builds de dev, car vagrant fonctionne avec une "base-box (OS)" et s'appuie sur ce que le script dit également, de sorte que vous pouvez avoir plusieurs environnements de test mais en utilisant uniquement le espace d'un.
boundless08
2

Vous pouvez resynchroniser les images de la machine virtuelle entre vos deux ordinateurs.

Alexander
la source
2
Un peu plus de détails en feraient une meilleure réponse. Peux-tu élaborer?
Dave M
1

Suivant le principe KISS, après l’enregistrement des VM et la modification des paramètres, il suffit de rsync la *.vdi file à travers pendant que les deux côtés sont éteints.

rsync -aPh <path-to-vm>/<diskname>.vdi <remote>:<path-to-vm>/

Bien sûr, il n'y aura aucun moyen de "fusionner" les conflits, vous devez donc être discipliné quant à la manière dont vous apportez des modifications à la VM et à leur prise en compte.

Pendant ce temps, vous pouvez mettre la plupart de vos données personnelles sur un NAS afin qu'elles soient toujours à jour et accessibles à partir de toutes les machines. De plus, vous pouvez monter des disques .vdi supplémentaires pour contenir la partition de swap ou un autre stockage temporaire, sans augmenter la taille de votre système .vdi.

Si vous êtes sur Windows, vous devez installer cygwin (ou msys2) pour les programmes ssh et rsync.

T Nierath
la source
1

Une solution possible, selon votre cas d'utilisation, consiste à modifier la réponse de cjpembo.

Si les deux ordinateurs distincts se trouvent tous deux sur le même réseau local au même endroit, vous pourrez peut-être exécuter un ordinateur virtuel sur un serveur ESXi ou similaire, et utiliser simplement la fonction de console distante des outils de gestion (ou même SSH) pour accéder à il des deux autres ordinateurs.

De toute évidence, si l’un des ordinateurs sur lequel vous souhaitez utiliser la machine virtuelle est un ordinateur portable qui se déplace, ce n’est peut-être pas une solution, surtout si vous devez partager une grande quantité de données entre "hôte" et "invité". environnements.

Si la machine virtuelle est relativement autonome, les fonctionnalités de console distante de VMware sont plutôt efficaces. Par conséquent, à moins que vous n'ayez besoin de lire des vidéos sur la machine virtuelle, elles peuvent fonctionner suffisamment, même à distance, pour être suffisamment performantes.

Michael Firth
la source