我通过在基本框上安装其他软件来创建自定义Vagrant框。我现在想分发这个盒子。我已使用vagrant package
打包自定义文件夹。
在创建框steps之后,我陷入了“创建提供者”阶段。该步骤要求我命名提供者并说明其URL。选择“virtualbox”作为提供者后,我不确定它作为URL的期望。 .box
文件位于我的本地计算机上,我只想将其上传到Vagrant Cloud,在那里可以下载以供其他人使用。 (如下图所示)
所以我的问题是:Vagrant Cloud是否为文件提供托管空间,还是只是重定向到实际的托管站点?换句话说,URL步骤是否期望我提供到已经上传到某个托管站点(Git,AWS等)的VM的链接?
如果Vagrant Cloud确实提供了托管空间,有人可以指引我进入下一步吗?具体来说,它期待什么URL?
由于
答案 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)
使用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发布,并指向自托管网址。