Bagaimana cara menambahkan file .box yang diunduh ke Vagrant?

115

Bagaimana cara menambahkan .boxfile yang diunduh ke daftar kotak yang tersedia milik Vagrant? The .boxfile terletak pada drive eksternal.

Saya mencoba menjalankan vagrant box add my-box d:/path/to/box, tetapi Vagrant menafsirkan jalur sebagai URL.

Petrus Theron
sumber
Bisakah Anda memposting seluruh output bersama dengan versi gelandangan? Secara teoritis penambahan kotak gelandangan harus bekerja seperti pesona dengan jalur file lokal
Emyl
3
Saya menggunakan Ubuntu, dan vagrant box add my-box /path/to/file.boxbekerja dengan baik untuk saya.
maan81

Jawaban:

178

Larutan:

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

Harus dalam format URL.

Petrus Theron
sumber
8
bagaimana jika saya menggunakanvagrant box add my-box ./path/to/mybox.box ?
Rakib
Anda juga dapat meneruskan -funtuk memaksanya mengunduh kotak itu lagi, dan menggantinya jika sudah ada. misalnyavagrant box add -f my-box http://some-url
Brad Parks
gelandangan di bawah macos dan linux (2.2.2) bekerja dengan jalur URI nun ke, sehingga file skema: // dapat dihilangkan di sini setidaknya. Mungkin itu perubahan spesifik versi atau spesifik jendelanya, saya lebih mengharapkan yang terakhir
Eugen Mayer
90

Anda dapat mengarahkan ke folder tempat gelandangan dan menyalin file kotak ke lokasi yang sama. Kemudian setelah itu Anda dapat menjalankan sebagai berikut

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

Hanya untuk memeriksa status

vagrant status
Sameera Thilakasiri
sumber
saya lakukan vagrant initdan vagrant updan kotak gelandangan saya sedang berjalan. Tapi saya tidak bisa ssh. Ketika saya melakukannya vagrant ssh, mengatakan "Mesin yang Anda coba untuk SSH dikonfigurasi untuk menggunakan otentikasi berbasis kata sandi. Gelandangan tidak dapat memasukkan sandi untuk Anda. Jika Anda diminta untuk memasukkan kata sandi, masukkan kata sandi yang sama dengan Anda. telah dikonfigurasi di Vagrantfile. " sedangkan saya tidak mengkonfigurasi apa pun di file Vagrantfile. Saya hanya menggunakan Vagrantfileyang dibuat secara otomatis vagrant init. Ketika saya cat Vagrantfile, saya tidak melihat apa pun yang disebut kata sandi atau pem atau apa pun
Rakib
Jika vagrant sshmeminta kata sandi, dan kotak dasar yang Anda gunakan bersifat publik, kemungkinan besar kata sandinya adalah vagrant.
Bender the Greatest
Saya memiliki kesalahan yang sama dan kata sandi gelandangan tidak menyelesaikannya
Karim Samir
Kata sandi untuk kotak Microsoft modern.ie adalahPassw0rd!
Redsandro
27

Cobalah untuk mengubah direktori ke tempat .boxdisimpan

Jalankan vagrant box add my-box downloaded.box, ini mungkin berfungsi karena menghindari jalur absolut (pada Windows?).

Terry Wang
sumber
saya lakukan vagrant initdan vagrant updan kotak gelandangan saya sedang berjalan. Tapi saya tidak bisa ssh. Ketika saya melakukannya vagrant ssh, mengatakan "Mesin yang Anda coba untuk SSH dikonfigurasi untuk menggunakan otentikasi berbasis kata sandi. Gelandangan tidak dapat memasukkan sandi untuk Anda. Jika Anda diminta untuk memasukkan kata sandi, masukkan kata sandi yang sama dengan Anda. telah dikonfigurasi di Vagrantfile. " sedangkan saya tidak mengkonfigurasi apa pun di file Vagrantfile. Saya hanya menggunakan Vagrantfileyang dibuat secara otomatis vagrant init. Ketika saya cat Vagrantfile, saya tidak melihat apa pun yang disebut kata sandi atau pem atau apa pun
Rakib
9

Solusi untuk Windows:

  • Buka cmd atau PowerShell sebagai admin
  • CD ke dalam folder yang berisi .boxfile tersebut
  • vagrant box add --name name_of_my_box 'name_of_my_box.box'
  • vagrant box list harus menunjukkan kotak baru dalam daftar

Solusi untuk MAC:

  • Buka terminal
  • CD ke dalam folder yang berisi .boxfile tersebut
  • vagrant box add --name name_of_my_box "./name_of_my_box.box"
  • vagrant box list harus menunjukkan kotak baru dalam daftar
langlauf.io
sumber
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
sumber
3

Pertama, ganti nama Vagrantfile lalu

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

Hanya untuk memeriksa status

vagrant status

itu saja

Ashfaq
sumber
3

Alternatifnya untuk menambahkan kotak yang diunduh, file json dengan metadata dapat dibuat. Dengan cara ini beberapa detail tambahan dapat diterapkan. Misalnya untuk mengimpor kotak dan menentukan versinya buat file:

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

Kemudian jalankan vagrant box addperintah dengan parameter:

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

Hanya untuk menambahkan deskripsi untuk satu kasus lainnya. Saya harus menginstal konfigurasi berbasis Vagrant Ubuntu 18.04 yang serupa ke beberapa mesin Ubuntu. Mengunduh kotak bionic64 ke satu menggunakan vagrant updengan Vagrantfiletempat kotak ini ditentukan, lalu menyalin folder .vagrant.d/boxes/ubuntu-VAGRANTSLASH-bionic64ke yang lain.

Dmitriy Vinokurov
sumber