Como adicionar um arquivo .box baixado ao Vagrant?

115

Como adiciono um .boxarquivo baixado à lista de caixas disponíveis do Vagrant? O .boxarquivo está localizado em uma unidade externa.

Tentei correr vagrant box add my-box d:/path/to/box, mas o Vagrant interpreta o caminho como uma URL.

Petrus Theron
fonte
Você poderia postar toda a produção junto com a versão vagrant? Teoricamente vagrant box add deve funcionar
perfeitamente
3
Estou no Ubuntu e vagrant box add my-box /path/to/file.boxfuncionou bem para mim.
maan81

Respostas:

177

Solução:

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

Deve estar em um formato de URL.

Petrus Theron
fonte
8
e se eu usarvagrant box add my-box ./path/to/mybox.box ?
Rakib de
você também pode passar -fa forçá-lo a baixar novamente a caixa, e substituí-la se ela já existir. por exemplovagrant box add -f my-box http://some-url
Brad Parks
vagrant em macos e linux (2.2.2) trabalha com um caminho de URI nun para, então o arquivo de esquema: // pode ser omitido aqui pelo menos. Talvez seja uma alteração específica da versão ou específico do windows, prefiro esperar o último
Eugen Mayer
90

Você pode apontar para a pasta onde o vagrant e copiar o arquivo box para o mesmo local. Depois, você pode executar o seguinte

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

Apenas para verificar o status

vagrant status
Sameera Thilakasiri
fonte
eu fiz vagrant inite vagrant upe minha caixa vagrant está funcionando. Mas eu não posso ssh. Quando eu faço vagrant ssh, diz "A máquina em que você está tentando fazer o SSH está configurada para usar autenticação baseada em senha. O Vagrant não consegue inserir a senha para você. Se for solicitada uma senha, digite a mesma senha que você configurou no Vagrantfile. " enquanto eu não configurei nada no Vagrantfile. Estou apenas usando o Vagrantfileque foi criado automaticamente vagrant init. Quando eu cat Vagrantfile, não vejo nada chamado senha ou pem ou qualquer coisa
Rakib
Se vagrant sshestiver pedindo uma senha e a caixa base que você está usando for pública, provavelmente a senha será vagrant.
Bender the Greatest
Eu tenho o mesmo erro e a senha do vagrant não resolveu
Karim Samir
A senha para as caixas da Microsoft modern.ie éPassw0rd!
Redsandro
27

Tente mudar o diretório para onde o .boxestá salvo

Executar vagrant box add my-box downloaded.box, isso pode funcionar porque evita o caminho absoluto (no Windows?).

Terry Wang
fonte
eu fiz vagrant inite vagrant upe minha caixa vagrant está funcionando. Mas eu não posso ssh. Quando eu faço vagrant ssh, diz "A máquina na qual você está tentando fazer o SSH está configurada para usar autenticação baseada em senha. O Vagrant não consegue inserir a senha para você. Se for solicitada uma senha, digite a mesma senha que você configurou no Vagrantfile. " enquanto eu não configurei nada no Vagrantfile. Estou apenas usando o Vagrantfileque foi criado automaticamente vagrant init. Quando eu cat Vagrantfile, não vejo nada chamado senha ou pem ou qualquer coisa
Rakib
9

Solução para Windows:

  • Abra o cmd ou PowerShell como administrador
  • CD na pasta que contém o .boxarquivo
  • vagrant box add --name name_of_my_box 'name_of_my_box.box'
  • vagrant box list deve mostrar a nova caixa na lista

Solução para MAC:

  • Terminal aberto
  • CD na pasta que contém o .boxarquivo
  • vagrant box add --name name_of_my_box "./name_of_my_box.box"
  • vagrant box list deve mostrar a nova caixa na lista
langlauf.io
fonte
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
fonte
3

Primeiro renomeie o Vagrantfile e depois

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

Apenas para verificar o status

vagrant status

Isso é tudo

Ashfaq
fonte
3

Como alternativa para adicionar a caixa baixada, um arquivo json com metadados pode ser criado. Desta forma, alguns detalhes adicionais podem ser aplicados. Por exemplo, para importar a caixa e especificar sua versão para criar o arquivo:

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

Em seguida, execute o vagrant box addcomando com o parâmetro:

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

Apenas para adicionar descrição para outro caso. Eu tenho que instalar configurações semelhantes baseadas no Vagrant Ubuntu 18.04 em várias máquinas Ubuntu. Baixei a caixa do bionic64 para uma usando vagrant upcom a Vagrantfilequal esta caixa foi especificada e copiei a pasta .vagrant.d/boxes/ubuntu-VAGRANTSLASH-bionic64para outras pessoas.

Dmitriy Vinokurov
fonte