¿Cómo agregar un archivo .box descargado a Vagrant?

115

¿Cómo agrego un .boxarchivo descargado a la lista de casillas disponibles de Vagrant? El .boxarchivo se encuentra en una unidad externa.

Intenté ejecutar vagrant box add my-box d:/path/to/box, pero Vagrant interpreta la ruta como una URL.

Petrus Theron
fuente
¿Podrías publicar toda la salida junto con la versión vagabunda? En teoría, vagrant box add debería funcionar como un encanto con rutas de archivos locales
Emyl
3
Estoy en Ubuntu y vagrant box add my-box /path/to/file.boxfuncionó bien para mí.
maan81

Respuestas:

178

Solución:

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

Tiene que estar en formato URL.

Petrus Theron
fuente
8
¿Y si usovagrant box add my-box ./path/to/mybox.box ?
Rakib
también puede pasar -fpara forzarlo a descargar la caja nuevamente, y reemplazarla si ya existe. Por ejemplovagrant box add -f my-box http://some-url
Brad Parks
vagrant en macos y linux (2.2.2) funciona con una ruta URI de nun a, por lo que el archivo de esquema: // se puede omitir aquí al menos. Tal vez sea un cambio específico de la versión o su específico de Windows, prefiero esperar el último
Eugen Mayer
90

Puede señalar la carpeta donde vagabundo y copiar el archivo de la caja en la misma ubicación. Luego, después, puede ejecutar lo siguiente

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

Solo para verificar el estado

vagrant status
Sameera Thilakasiri
fuente
Lo hice vagrant inity vagrant upmi caja de vagabundos está funcionando. Pero no puedo ssh. Cuando lo hago vagrant ssh, dice "La máquina en la que está intentando conectarse a SSH está configurada para usar autenticación basada en contraseña. Vagrant no puede escribir la contraseña por usted. Si se le solicita una contraseña, ingrese la misma contraseña que usted han configurado en el Vagrantfile ". mientras que no configuré nada en el Vagrantfile. Solo estoy usando el Vagrantfileque se creó automáticamente vagrant init. Cuando yo cat Vagrantfile, no veo nada llamado contraseña o pem ni nada
Rakib
Si vagrant sshestá solicitando una contraseña y el cuadro base que está usando es público, es probable que la contraseña lo sea vagrant.
Bender the Greatest
Tengo el mismo error y el vagabundo de la contraseña no lo resolvió
Karim Samir
La contraseña para las cajas de Microsoft modern.ie esPassw0rd!
Redsandro
27

Intente cambiar el directorio donde .boxestá guardado

Ejecutar vagrant box add my-box downloaded.box, esto puede funcionar ya que evita la ruta absoluta (¿en Windows?).

Terry Wang
fuente
Lo hice vagrant inity vagrant upmi caja de vagabundos está funcionando. Pero no puedo ssh. Cuando lo hago vagrant ssh, dice "La máquina en la que está intentando conectarse con SSH está configurada para usar la autenticación basada en contraseña. Vagrant no puede escribir la contraseña por usted. Si se le solicita una contraseña, ingrese la misma contraseña que usted han configurado en el Vagrantfile ". mientras que no configuré nada en el Vagrantfile. Solo estoy usando el Vagrantfileque se creó automáticamente vagrant init. Cuando yo cat Vagrantfile, no veo nada llamado contraseña o pem ni nada
Rakib
9

Solución para Windows:

  • Abra el cmd o powershell como administrador
  • CD en la carpeta que contiene el .boxarchivo
  • vagrant box add --name name_of_my_box 'name_of_my_box.box'
  • vagrant box list debería mostrar el nuevo cuadro en la lista

Solución para MAC:

  • Terminal abierto
  • CD en la carpeta que contiene el .boxarchivo
  • vagrant box add --name name_of_my_box "./name_of_my_box.box"
  • vagrant box list debería mostrar el nuevo cuadro en la lista
langlauf.io
fuente
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
fuente
3

Primero cambie el nombre del Vagrantfile luego

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

Solo para verificar el estado

vagrant status

eso es todo

Ashfaq
fuente
3

Alternativamente, para agregar el cuadro descargado, se puede crear un archivo json con metadatos. De esta forma se pueden aplicar algunos detalles adicionales. Por ejemplo, para importar el cuadro y especificar su versión crear archivo:

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

Luego ejecute el vagrant box addcomando con el parámetro:

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

Solo para agregar una descripción para otro caso. Tengo que instalar configuraciones similares basadas en Vagrant Ubuntu 18.04 en varias máquinas Ubuntu. Caja bionic64 descargado a uno usando vagrant upcon Vagrantfileel que se especifica esta caja de texto, a continuación, copiar la carpeta .vagrant.d/boxes/ubuntu-VAGRANTSLASH-bionic64a otros.

Dmitriy Vinokurov
fuente