Vagrant能够管理项目的所有服务器吗? (例如当地,开发,分期和生产)

时间:2014-09-29 20:10:01

标签: ruby vagrant chef vagrantfile berkshelf

几个星期前,我遇到了Vagrant并坠入爱河。我目前正在尝试一个新项目,并且在当地工作得很好。我使用Chef Solo构建所有盒子软件和Berkshelf来管理烹饪书。

我想知道的是每个人如何管理每个项目的开发,升级和生产服务器。当我在本地从事这个项目时,我想在项目完成后拥有一个开发服务器并最终进行登台和生产服务器。

我已经使用Vagrant AWS Plugin成功地使用亚马逊的Ec2设置了Vagrant,但看起来Vagrant不会让你vagrant up本地方框一个开发盒同时,你只能有一个。

我写了一个小的bash脚本,基本上给了我这个功能。我可以跑

$ vagrant up local
$ vagrant up development
$ vagrant up staging
$ vagrant up production

它将通过查找专用于该框配置的Vagrantfile来构建我指定的每个框。我有一个目录名machines,其中每个流浪文件都存在。我的目录结构看起来像这样

- app/
- public/
- vagrant/
    - attributes/
    - machines/
      - local.rb
      - development.rb
      - staging.rb
      - production.rb
    - recipes/
    - templates/

这是一个明智的解决方案吗?

您如何管理单个项目的多个服务器。可以将所有配置都存放在一个Vagrantfile中吗?

1 个答案:

答案 0 :(得分:2)

请永远不要这样做。 Vagrant不是为它而构建的,打破。例如,如果你需要从不同的工作站操作生产实例,祝你好运:-(如果你正在寻找管理服务器配置的工具,那肯定是一些苗条的选择,但有一些工具可以尝试:

  • CloudFormation(和OpenStack的热量)
  • Terraform
  • 厨师金属

如果您都是基于AWS(或OpenStack)的话,第一个有点笨拙但非常强大。后两者很年轻但看起来很有希望。