如何将盒子上传到流浪云中进行分发

时间:2014-05-01 01:39:05

标签: vagrant

我通过在基本框上安装其他软件来创建自定义Vagrant框。我现在想分发这个盒子。我已使用vagrant package打包自定义文件夹。

在创建框steps之后,我陷入了“创建提供者”阶段。该步骤要求我命名提供者并说明其URL。选择“virtualbox”作为提供者后,我不确定它作为URL的期望。 .box文件位于我的本地计算机上,我只想将其上传到Vagrant Cloud,在那里可以下载以供其他人使用。 (如下图所示)

Please view the image below

所以我的问题是:Vagrant Cloud是否为文件提供托管空间,还是只是重定向到实际的托管站点?换句话说,URL步骤是否期望我提供到已经上传到某个托管站点(Git,AWS等)的VM的链接?

如果Vagrant Cloud确实提供了托管空间,有人可以指引我进入下一步吗?具体来说,它期待什么URL?

由于

3 个答案:

答案 0 :(得分:6)

我最近刚遇到同样的问题,并从支持部门提出同样的问题。在撰写本文时,Vagrant Cloud Beta不提供文件托管(预计很快就会发生变化)。相反,你必须将盒子文件保存在互联网的某个地方并提供该位置的URL。请注意,该文件不能落后于身份验证。

2014年5月28日更新

以下注释出现在Vagrant Cloud Beta Help - 部分:

  

此服务的核心部分是托管实际的盒子文件。这是在测试版发布时进行的内部测试,由于带宽成本高,可能会成为付费功能。

Private Boxes - 文档中仍未解决隐私问题。

2014年5月30日更新

HashiCorp昨天宣布Beta的结束和一系列新功能,包括盒子托管。有关详细信息,请参阅他们的公告:Vagrant Cloud: Organizations, Box Hosting and the end of Beta

答案 1 :(得分:5)

来自Atlas Documentation

使用API​​创建方框

此示例使用Boxes API上传带有curl的框。要开始使用,您需要获取访问令牌。

然后,准备上传:

$ curl 'https://atlas.hashicorp.com/api/v1/box/USERNAME/BOX_NAME/version/VERSION/provider/PROVIDER_NAME/upload?access_token=ACCESS_TOKEN'

这应该返回这样的内容:

{
  "upload_path": "https://binstore.hashicorp.com/630e42d9-2364-2412-4121-18266770468e",
  "token": "630e42d9-2364-2412-4121-18266770468e"
}

然后,使用以下命令上传您的框,文件名在这种情况下为foo.box:

$ curl -X PUT --upload-file foo.box https://binstore.hashicorp.com/630e42d9-2364-2412-4121-18266770468e

当上传完成后,您可以通过发出此请求来验证它是否有效,并且匹配managed_token,它将返回到之前检索的上传令牌。

$ curl 'https://atlas.hashicorp.com/api/v1/box/USERNAME/BOX_NAME/version/VERSION_NUMBER/provider/PROVIDER_NAME?access_token=ACCESS_TOKEN'

然后您的邮箱可供下载。

答案 2 :(得分:1)

Vagrant Cloud不提供盒式文件托管(至少在此阶段不提供)。即使它将来会发生,我怀疑托管是免费的。

现在,用户只能对流浪汉版本进行版本化并使用Vagrant Cloud发布,并指向自托管网址。