如何将下载的.box文件添加到Vagrant?


115

如何将下载的.box文件添加到Vagrant的可用包装盒列表中?该.box文件位于外部驱动器上。

我尝试运行vagrant box add my-box d:/path/to/box,但是Vagrant将路径解释为URL。


您可以将整个输出与无业游民的版本一起发布吗?从理论上讲,流浪汉添加框应该像本地文件路径一样
具有吸引力-Emyl

3
我在Ubuntu中,vagrant box add my-box /path/to/file.box对我来说很好。
maan81 2015年

Answers:


177

解:

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

必须为URL格式。


8
如果我使用该怎么办vagrant box add my-box ./path/to/mybox.box ?
Rakib

您还可以通过-f强制它再次下载该框,如果该框已存在,则将其替换。例如vagrant box add -f my-box http://some-url
Brad Parks

macos和linux(2.2.2)下的vagrant使用nun URI路径,因此方案file://至少可以在此处省略。也许这一个版本的特定变化或它的Windows具体,我还是期待后者
尤金·迈耶

90

您可以指向无所事事的文件夹,然后将Box文件复制到同一位置。然后,您可能会如下运行

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

只是检查状态

vagrant status

我做到了vagrant initvagrant up我无业游民的盒子正在运行。但我不能ssh。当我vagrant ssh说“您尝试通过SSH进入的计算机已配置为使用基于密码的身份验证。Vagrant无法为您输入密码的脚本。如果系统提示您输入密码,请输入与您相同的密码已在Vagrantfile中配置。” 而我没有在中配置任何内容Vagrantfile。我只是使用Vagrantfile自动创建的vagrant init。当我时cat Vagrantfile,我什么也看不到称为密码或pem的东西
Rakib 2015年

如果vagrant ssh要求输入密码,而您使用的基本框是公用的,则密码可能是vagrant
本德尔最伟大的

我有相同的错误,密码迷茫者无法解决
Karim Samir

对于密码modern.ie微软盒是Passw0rd!
Redsandro

27

尝试将目录更改.box为保存的目录

运行vagrant box add my-box downloaded.box,这可以避免绝对路径(在Windows上?),因此可能会起作用。


我做到了vagrant initvagrant up我无业游民的盒子正在运行。但我不能ssh。当我vagrant ssh说“您尝试通过SSH进入的计算机已配置为使用基于密码的身份验证。Vagrant无法为您输入密码的脚本。如果系统提示您输入密码,请输入与您相同的密码已在Vagrantfile中配置。” 而我没有在中配置任何内容Vagrantfile。我只是使用Vagrantfile自动创建的vagrant init。当我时cat Vagrantfile,我看不到任何称为密码或pem的东西
Rakib

9

Windows解决方案:

  • 以管理员身份打开cmd或powershell
  • CD放入包含.box文件的文件夹中
  • vagrant box add --name name_of_my_box 'name_of_my_box.box'
  • vagrant box list 应该在列表中显示新框

MAC解决方案:

  • 打开终端
  • CD放入包含.box文件的文件夹中
  • vagrant box add --name name_of_my_box "./name_of_my_box.box"
  • vagrant box list 应该在列表中显示新框

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'!

3

首先重命名Vagrantfile,然后

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

只是检查状态

vagrant status

就这样


3

另外,要添加下载的框,可以创建带有元数据的json文件。这样,可以应用一些其他细节。例如要导入框并指定其版本创建文件:

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

然后运行vagrant box add带有参数的命令:

vagrant box add laravel/homestead /path/to/metadata.json

1

仅添加另一种情况的描述。我必须将基于Vagrant Ubuntu 18.04的配置安装到多台Ubuntu计算机上。将bionic64盒下载到一个vagrant upVagrantfile指定该盒的位置一起使用的盒,然后将文件夹复制.vagrant.d/boxes/ubuntu-VAGRANTSLASH-bionic64到其他文件夹。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.