Comment ajouter un fichier .box téléchargé à Vagrant?

115

Comment ajouter un .boxfichier téléchargé à la liste des boîtes disponibles de Vagrant? Le .boxfichier se trouve sur un lecteur externe.

J'ai essayé de courir vagrant box add my-box d:/path/to/box, mais Vagrant interprète le chemin comme une URL.

Petrus Theron
la source
Pourriez-vous publier toute la sortie avec la version vagabonde? L'ajout de boîte de vagabond théoriquement devrait fonctionner comme un charme avec les chemins de fichiers locaux
Emyl
3
Je suis dans Ubuntu et vagrant box add my-box /path/to/file.boxa bien fonctionné pour moi.
maan81

Réponses:

178

Solution:

vagrant box add my-box file:///d:/path/to/file.box

Doit être au format URL.

Petrus Theron
la source
8
et si j'utilisevagrant box add my-box ./path/to/mybox.box ?
Rakib
vous pouvez également passer -fpour le forcer à télécharger à nouveau la boîte, et la remplacer si elle existe déjà. par exemplevagrant box add -f my-box http://some-url
Brad Parks
vagrant sous macos et linux (2.2.2) fonctionne avec un chemin URI nun vers, donc le fichier de schéma: // peut être omis ici au moins. Peut-être qu'un changement spécifique à une version ou à ses fenêtres spécifiques, je m'attends plutôt à ce dernier
Eugen Mayer
90

Vous pouvez pointer vers le dossier où vagrant et copier le fichier de la boîte au même emplacement. Ensuite, vous pouvez exécuter comme suit

vagrant box add my-box name-of-the-box.box
vagrant init my-box
vagrant up

Juste pour vérifier le statut

vagrant status
Sameera Thilakasiri
la source
J'ai fait vagrant init et vagrant upma boîte de vagabonds fonctionne. Mais je ne peux pas ssh. Quand je le fais, vagrant sshil est dit "La machine sur laquelle vous essayez de vous connecter en SSH est configurée pour utiliser l'authentification par mot de passe. Vagrant ne peut pas écrire le mot de passe pour vous. Si vous êtes invité à entrer un mot de passe, veuillez entrer le même mot de passe que vous ont configuré dans le Vagrantfile. " alors que je n'ai rien configuré dans le Vagrantfile. J'utilise juste le Vagrantfilequi a été créé automatiquement vagrant init. Quand je cat Vagrantfile, je ne vois rien qui s'appelle un mot de passe ou un pem ou quoi que ce soit
Rakib
Si vous vagrant sshdemande un mot de passe et que la boîte de base que vous utilisez est publique, il y a de fortes chances que le mot de passe le soit vagrant.
Bender the Greatest
J'ai la même erreur et le mot de passe vagrant ne l'a pas résolu
Karim Samir
Le mot de passe pour les boîtes Microsoft modern.ie estPassw0rd!
Redsandro
27

Essayez de changer de répertoire dans lequel .boxest enregistré

Exécutez vagrant box add my-box downloaded.box, cela peut fonctionner car cela évite le chemin absolu (sous Windows?).

Terry Wang
la source
je l'ai fait vagrant initet vagrant upma boîte de vagabonds fonctionne. Mais je ne peux pas ssh. Quand je le fais, vagrant sshil est dit "La machine sur laquelle vous essayez de vous connecter en SSH est configurée pour utiliser l'authentification par mot de passe. Vagrant ne peut pas écrire le mot de passe pour vous. Si vous êtes invité à entrer un mot de passe, veuillez entrer le même mot de passe que vous ont configuré dans le Vagrantfile. " alors que je n'ai rien configuré dans le Vagrantfile. J'utilise juste le Vagrantfilequi a été créé automatiquement vagrant init. Quand je cat Vagrantfile, je ne vois rien qui s'appelle un mot de passe ou un pem ou quoi que ce soit
Rakib
9

Solution pour Windows:

  • Ouvrez le cmd ou powershell en tant qu'administrateur
  • CD dans le dossier contenant le .boxfichier
  • vagrant box add --name name_of_my_box 'name_of_my_box.box'
  • vagrant box list devrait afficher la nouvelle case dans la liste

Solution pour MAC:

  • Terminal ouvert
  • CD dans le dossier contenant le .boxfichier
  • vagrant box add --name name_of_my_box "./name_of_my_box.box"
  • vagrant box list devrait afficher la nouvelle case dans la liste
langlauf.io
la source
3
F:\PuppetLab\src\boxes>vagrant box add precise32 file:///F:/PuppetLab/src/boxes/precise32.box
==> box: Adding box 'precise32' (v0) for provider:
    box: Downloading: file:///F:/PuppetLab/src/boxes/precise32.box
    box: Progress: 100% (Rate: 1200k/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'precise32' (v0) for 'virtualbox'!
bhapat
la source
3

Renommez d'abord le Vagrantfile puis

vagrant box add new-box name-of-the-box.box
vagrant init new-box
vagrant up

Juste pour vérifier le statut

vagrant status

c'est tout

Ashfaq
la source
3

Alternativement pour ajouter la boîte téléchargée, un fichier json avec des métadonnées peut être créé. De cette façon, certains détails supplémentaires peuvent être appliqués. Par exemple pour importer la boîte et spécifier sa version créer un fichier:

{
  "name": "laravel/homestead",
  "versions": [
    {
      "version": "7.0.0",
      "providers": [
        {
          "name": "virtualbox",
          "url": "file:///path/to/box/virtualbox.box"
        }
      ]
    }
  ]
}

Ensuite, exécutez la vagrant box addcommande avec le paramètre:

vagrant box add laravel/homestead /path/to/metadata.json
Jakhongir
la source
1

Juste pour ajouter une description pour un autre cas. Je dois installer des configurations similaires basées sur Vagrant Ubuntu 18.04 sur plusieurs machines Ubuntu. Boîte de bionic64 téléchargée à un utilisant vagrant upavec Vagrantfileoù cette boîte a été spécifiée, puis dossier copié .vagrant.d/boxes/ubuntu-VAGRANTSLASH-bionic64vers d'autres.

Dmitriy Vinokurov
la source