将本地vagrant镜像box上传到Vagrant Cloud并
注册
地址:https://app.vagrantup.com/account/new
你先得注册一个Vagrant Cloud的账号用来存储的仓库
image.png
登录
然后登录账号。
image.png
新建Vagrant Box
下图可以看到我已创建的Boxes列表(shahao/swoole)以及对应的简要描述。然后我们点击“New Vagrant Box”
image.png
在这里,我们创建一个“shahao/test”的box,点击“create box”。
image.png
输入版本号和简要描述,点击“Create version”
image.png
创建成功,上传box
然后这时候只是创建了一个仓库,会提示“This box has no released versions. It will not be available from vagrant box add, nor will it show up in search results.”,表示仓库还没有已发布的版本,还不能给其他人发现并使用,需要我们上传box到仓库。点击“Add a provider”。
image.png
然后选择“Provider”为“virtualbox”,不加密,最后上传box文件。上传完成后,你的box就共享给其他人,他们也可以直接使用你已经搭建好的虚拟机环境啦。我现在拥有的是php-cli带有swoole这个开发环境,欢迎大家下载。
https://vagrantcloud.com/shahao/boxes/swoole/versions/1.0.0/providers/virtualbox.box
放到浏览器可直接下载,可能速度有点感人。
image.png
下载安装
上面链接点击可以直接下载,以下是命令下载并使用。命令很简单.
vagrant init shahao/swoole \
--box-version 1.0.0
vagrant up
image.png
image.png
成功之后执行vagrant ssh就可以使用了。当然前提是你已经安装了vagrant和Oracle VM VirtualBox。参考vagrant 入门
可能出现的问题
- 网络问题:导致你上传或下载的时候断掉失败了,这个就多尝试几次吧
- default: Warning: Authentication failure. Retrying...
在执行vagant up的时候可能出现这个问题
image.png
通过上面的错误信息,我们发现并不是config.vm.boot_timeout的问题, 因为我们已经可以连接虚拟机了。 Authentication failure说明认证失败, 猜测可能是ssh默认登陆问题, 可以在vagrantfile中添加以下内容:
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
然后在vagrant reload就可以了。
image.png