Vagrant Chef服务器:设置开发环境的策略

Vagrant Chef服务器:设置开发环境的策略,vagrant,chef-infra,berkshelf,Vagrant,Chef Infra,Berkshelf,我开始熟悉Berkshellf(这是顺便学习chef的一个很好的方法),现在我想知道我应该如何为我们的PHP开发人员管理/推出开发环境,我想提供从chef cookbooks提供的本地/虚拟机环境 我想弄清楚对于厨师长开发人员和应用程序开发人员(在我的例子中是PHP开发人员)来说,理想的环境是什么。我需要为使用我的烹饪书的PHP开发人员提供可重复的本地(或VM)环境 我在考虑使用Vagrantfile,这样开发人员就可以用他或她的证书配置chef服务器,提供证书,然后开始使用环境。我不确定的是:

我开始熟悉Berkshellf(这是顺便学习chef的一个很好的方法),现在我想知道我应该如何为我们的PHP开发人员管理/推出开发环境,我想提供从chef cookbooks提供的本地/虚拟机环境

我想弄清楚对于厨师长开发人员和应用程序开发人员(在我的例子中是PHP开发人员)来说,理想的环境是什么。我需要为使用我的烹饪书的PHP开发人员提供可重复的本地(或VM)环境

我在考虑使用Vagrantfile,这样开发人员就可以用他或她的证书配置chef服务器,提供证书,然后开始使用环境。我不确定的是:每个开发人员是否应该在Chef Server中为每个应用程序列出自己的Vagrant节点?或者有没有一种方法可以在不注册vagrant节点的情况下使用Chef client provisioner

基本上,我并不真正关心本地机器上的节点,但如果开发人员能够从Chef服务器提供Vagrant,使其与其他环境匹配,那将是非常棒的


第二,我所有生成的回购协议都使用Chef客户端来提供。这是一个很好的实践,还是我应该只使用chef solo作为开发人员开发/测试烹饪书?

完全是一个意见型问题,所以我将给出基于意见的答案。希望其他一些人能加入进来,因为他们中的很多人比我更有经验

适用于应用程序开发人员 我们将厨房和超市结合使用,效果非常好。我们有一个包含Gemfile、.kitchen.yml和Berksfile的repo。理想情况下,它还有一个单命令设置脚本,用于设置超市用户knife.rb、install Vagrant等。此repo还包含本地厨师使用的所有原语(角色、环境等)

最终,它将有一个耙形锉,将所有这些都很好地包裹起来

rake setup # installs any non-gem stuff, sets up users, berks install, etc.
rake standup # stands up our primary app and dependencies (involves multiple VMs playing together)
rake standup:standalone # stands up the primary app and dependencies all on one box
rake standup:otherApp # you get the idea
然后,每个rake任务可以根据需要调用任意多个
操作

面向厨师长开发人员 首先,随着chef zero(又名本地模式)越来越受欢迎,chef solo越来越不受欢迎。Solo永远不会消失,但我在您的用例中看不到它的原因

第二,我所见过的大多数厨师店似乎都已经从“流浪者”转移到了“测试厨房”。默认情况下,Kitchen在后台使用Vagrant,与Vagrant一样,它也可以使用各种其他系统(Docker、AWS、Rackspace、VMware等)。只是更以厨师为中心。对于您所描述的,您的“开发环境”无论如何都需要一个测试框架。所以,既然可以使用测试厨房一石二鸟,为什么还要使用顶部有测试框架的Vagrant呢

第三,零厨师是你的朋友。不要让每个开发人员都使用chef server启动一个VM。只需在您的环境、角色和数据包中进行git回购即可。然后让他们使用chef zero provisioner或chef local(运行chef zero)运行测试厨房,并指向git repo。通过这种方式,它的重量要轻得多,并且允许所有开发人员共享公共对象

第四,结帐支票。它基本上已经具备了上述所有条件,很可能成为一种“正常”的做事方式


第五,如果你还是从头开始,我建议你在制作厨师服务器旁设置超市和厨师守卫。Chef guard将使管理角色、环境和数据包的更改更容易处理1000%。Supermarket与Berkself完美集成,让您完全控制环境中使用的烹饪书版本

回答得很好。我对我所说的“开发者”有点含糊不清。我指的是应用程序开发人员,但您也为基础设施开发人员指引了正确的方向。那些将使用基础设施但不直接参与基础设施建设的应用程序开发人员呢?我也在试图找出为PHP开发人员创建本地/VM环境的最佳方法。