我正在尝试学习如何使用VirtualBox,Veewee,Vagrant和Chef-solo与Berkshelf建立虚拟开发环境。
由于我对此非常陌生,我已经阅读了所有我能在网上找到的内容,但我认为我错过了一些至关重要的内容。希望有人能帮助我理解。
我遇到问题的部分是使用Chef-solo和Berkshelf配置Veewee生成的Vagrant盒子。
从我的角度来看,使用Vagrant和虚拟环境的主要优点是它们具有可重复性和可移植性,所以我不明白为什么我必须在本地主机上安装Berkshelf gem并下载配方机
为什么不在客人身上完成所有这些操作?
如果我将自定义的Vagrantfile提供给其他人, vagrant up 将无法在他们的计算机上运行,因为Vagrantfile会引用其他人默认不具备的本地食谱。在他们的机器上安装Berkshelf和食谱也有点失败了,所以在某处可以参考网上提供的食谱。
在客人身上安装Berkshelf gem不是一个更好的主意,在那里下载食谱并告诉Vagrant使用客人的食谱吗?我在新的Vagrant文档中找不到有关如何执行此操作的任何参考,但在旧版本中,指定虚拟机中的cookbook文件夹为an available option。
基本上我想知道的是:
我的推理是一个有效的选项还是我错过了一个有用的工具或一般的图片?
如果我的推理有效,请指点我如何做到这一点的正确方向?我正在考虑如何自定义Veewee模板以构建Vagrant基本框,使用安装后脚本添加Berkshelf并下载配方,但是这可能是过度杀戮还是错误的方式来解决这个问题?
< / LI> 醇>提前致谢!
答案 0 :(得分:1)
Jepp可以认为管理超出指定客人的烹饪书是违反可移植原则的,但这个差距可以填充两个简单的Vagrant插件,集成了图书管理员 - 厨师或berkshelf(它们以不同的方式做同样的事情) )以便在每次vagrant up
运行之前,例如berkshelf是自动执行的 - 确保开发者必须安装此插件+ Vagrant + Virtualbox + Veewee /其他一些基本盒,但这个设置是一次性的。
对于我使用此类插件的图书管理员 - 厨师可能是this。
HIH