J'ai installé une VirtualBox, puis j'ai installé un système d'exploitation de base Ubuntu 12.10 Server Base. J'ai installé toutes sortes de paquets php et d'autres paquets dedans. Mes amis m'ont recommandé d'utiliser Vagrant afin que je puisse partager ma configuration avec mes coéquipiers facilement.
Parce que ma VirtualBox actuelle VM n'a pas été créée à l'aide de vagrant up
, Je ne sais pas comment le conditionner. La documentation de Vagrant parle d'emballage mais commence par dire:
Avant de parcourir le reste de cette page, assurez-vous que l'environnement virtuel est créé en exécutant vagrant up.
Dans mon cas, mon VM existant n'a PAS été créé initialement en utilisant vagrant up.
Comment empaqueter ma machine virtuelle existante?
La chose importante à réaliser (et les documents vagabonds ne sont pas trop clairs à ce sujet) est qu'il existe deux "saveurs" d'emballage:
vagrant up
, Ce que vous n'avez pas. Cela vous permet de empaqueter toutes les personnalisations que vous avez apportées à une boîte de base vagabonde .Il y a un guide détaillé pour créer des boîtes errantes à partir de zéro en utilisant Oracle Enterprise Linux, qui pourrait être utile. Vous pouvez également essayer VeeWee .
Alternativement, vous pouvez commencer avec un boîte de base Ubuntu 12.1 et porter vos personnalisations, auquel cas vous pouvez utiliser la première méthode d'emballage plus simple.
Ce qui précède fait référence à Vagrant 1.0. Les choses ont légèrement changé en 1.1 et en particulier les documents ont été réécrits:
vagrant package
commande vous permet de empaqueter toutes les personnalisations que vous avez apportées à une boîte de base vagabonde existante dans le de la même manière qu'en 1.0.metadata.json
est requis car Vagrant 1.1 prend en charge plusieurs fournisseurs .paquet vagrant --output box_name.box --base "vm machine name" --vagrantfile Vagrantfile
Assurez-vous que la redirection de port et les clés SSH sont correctement configurées.
Cela peut être un bon exemple: https://github.com/okfn/ckan/wiki/How-to-Create-a-CentOS-Vagrant-Base-Box
N'importe quel VirtualBox peut être empaqueté dans des boîtes de base Vagrant (essentiellement OVA avec un Vagrantfile
).
Les problèmes sont: le VM n'est pas construit selon les boîtes de base vagabondes, si vous ne le partagez pas sur vagrantbox.es alors ça ira.
Installez simplement vagrant (via gem ou le programme d'installation), exécutez la commande suivante dans le dossier VM pour le conditionner dans .box
NOTE : Pour Vagrant 1.2.x, la méthode d'installation recommandée utilise le package spécifique au système d'exploitation. Ruby Gem n'est PAS disponible pour 1.2.x.
vagrant package --base ubuntu --output /path/to/ubuntu.box
N'oubliez pas, si vous souhaitez partager la boîte de base vagabonde avec d'autres, mieux lire les documents et suivre ces règles pour le rendre plus facile pour les autres.
Bien que ce ne soit pas une réponse complète, je pense que vous pouvez obtenir ce dont vous avez besoin dans la documentation, qui est assez complète. Je crois que vagrant up
est simplement un moyen pratique de configurer une "boîte" vagabonde. Il existe un certain nombre d'exigences pour qu'une boîte soit conforme à Vagrant. Ils sont décrits ici ...
Documentation: Vagrant - Boîtes de base
Les os nus nécessaires pour une boîte sont les suivants ...
Une fois qu'une boîte est conforme à ces exigences, il suffit simplement d'utiliser le vagrant package
commande pour créer une installation portable ...
Plus de documentation: Vagrant - Boxes
Donc, même si je n'ai pas de réponse complète, ne l'ayant jamais fait de cette façon, je pense qu'il est possible de mettre votre installation dans un état qui vous permettra de l'empaqueter et de la distribuer.
Utilisez la commande 'VBoxManage list vms'! Je l'ai utilisée avec Sudo uniquement pour voir qu'il n'y avait pas de VMS répertorié. Utilisez donc la commande avec le bon utilisateur authentifié.
Comme mentionné ici - http://sysadm.pp.ua/linux/sistemy-virtualizacii/vagrant-box-creation.html Vous avez besoin de trois choses pour que la boîte soit importée et emballée:
Personnellement, l'aspect illusoire du processus d'emballage était le --base
commutateur. Je soupçonne que cela pourrait être le cas avec beaucoup de gens. Check-out vagrant package --help
pour la description. La documentation ne semble pas en faire mention non plus.
J'ai trouvé ces deux excellents guides détaillés pour créer des boîtes Vagrant à partir de machines qui étaient à l'origine des machines VirtualBox:
Le guide d'emballage dans "Mise en route" auquel vous vous référez suppose que vous avez commencé à partir d'une boîte de base vagabonde et que vous l'avez initialisé avec vagrant up, ce que vous n'avez pas. Cela vous permet de regrouper toutes les personnalisations que vous avez apportées à une boîte de base vagabonde.
Si vous partez de zéro ou d'une machine virtuelle "simple" VirtualBox
, comme vous le faites, vous devez créer une boîte de base vagabonde. Vous devriez bien suivre le guide, qui est basé sur Ubuntu.
Regardez la documentation mise à jour pour trouver toutes les caractéristiques de votre box si vous voulez qu'elle fonctionne parfaitement avec vagrant:
http://docs.vagrantup.com/v2/virtualbox/boxes.html
Vous devriez également jeter un oeil à un grand projet appelé veewee, qui vous permet de scénariser la génération d'une boîte vagabonde à partir de Scractch. Cela signifie que veewee téléchargera réellement l'ISO à partir de votre distribution et l'installera sur une machine vierge virtuelle, puis configurera et installera toutes les dépendances.
Il est livré avec beaucoup de recettes pour tous les différents types de distribution Linux:
https://github.com/jedi4ever/veewee
Voici encore plus de boîtes. Ils disent que ce sont des boîtes de marionnettes mais ils travaillent avec tous les fournisseurs (chef, marionnette et script Shell):