在生产中流浪

时间:2012-11-15 01:57:19

标签: virtualhost vagrant infrastructure

我一直在阅读Vagrant,我发现它对我的开发非常有用。我目前正在管理一系列服务(邮件,网络,LDAP,文件共享等),而且往往其中一项服务需要快速备份。是否有可能(并建议)将Vagrant用于这些目的?

到目前为止,我安装的虚拟机就像真机一样。

我还想知道一个Vagrant的替代品,它允许我设置一个简单的配置文件并放置一个虚拟机,例如,使用Zimbra,并快速拥有备用邮件服务器,启用RabbitMQ等。 / p>

6 个答案:

答案 0 :(得分:15)

Vagrant应该更像是一个临时环境来测试您的基础架构更改。它应该是您进行自动化基础架构更改的测试平台。

我们在公司使用它的方式是这样的:

  1. 在Vagrant中为我们的托管服务器创建VM。
  2. 为每个服务器创建puppet定义。
  3. 为每台服务器创建黄瓜测试。
  4. 通过木偶进行基础设施更改并添加黄瓜测试。
  5. 启动我们的服务器以测试失败。
  6. 修复错误,发布和/或返回第4步。
  7. 基本上,当我们对我们的变化感到满意时,我们会将傀儡的变化付诸实践,以实现这一目标。

    我不建议使用vagrant管理虚拟机以进行实际制作。我会使用razor,virsh,OpenStack或其他许多虚拟机管理系统之一。

答案 1 :(得分:1)

此页面表明Vagrant push命令用于部署到生产:

https://www.hashicorp.com/blog/vagrant-push-one-command-to-deploy-any-application/

“此外,多个config.push.define声明可以在Vagrantfile中定义多个推送,例如,一个用于分段,一个用于生产。”

答案 2 :(得分:0)

Hashicorp刚刚发布了Otto,这是Vagrant的继任者。它旨在支持部署环境。

来自Github page

Otto的主要特点是:

  • 自动开发环境:Otto会检测您的应用程序 键入并构建专门为此定制的开发环境 应用程序,配置为零或最小。如果您的申请取决于 在其他服务(如数据库)上,它将自动配置和 在您的开发环境中为您启动这些服务。

  • 专为微服务而构建:Otto了解依赖关系和版本控制 并且可以自动部署和配置应用程序和所有 它对任何环境的依赖性。应用程序只需要 告诉Otto它的直接依赖;依赖的依赖关系是 自动检测和配置。

  • 部署:Otto知道如何部署应用程序以及开发 他们。您的应用程序是否是现代微服务,是遗产 monolith,或介于两者之间的东西,Otto可以将您的应用程序部署到任何 环境。

  • Docker :Otto可以使用Docker下载并启动依赖项 用于简化微服务的开发。应用程序可以集装箱化 在不更改开发人员的情况下自动简化部署 工作流程。

  • 生产硬化工具:Otto使用生产硬化工具 构建开发环境(Vagrant), 启动服务器(Terraform),配置 服务(Consul)等。奥托建立在 为世界上最大的网站提供支持的工具。 Otto会自动安装和管理所有这些工具,因此您不需要 必须。

答案 3 :(得分:0)

我有一个相同的问题,并且一直在研究Vagrant push的使用,根据他们的documentation,从1.7版开始,Vagrant能够在与您的Vagrantfile相同的目录中部署或“推送”应用程序代码到远程服务器(例如FTP服务器)。

我正在考虑让开发人员在VM中增加无所事事的机会,同时还可以选择将代码部署到生产环境的实时服务器中。

答案 4 :(得分:0)

  • 根据我的经验,Vagrant主要用于开发环境中。
  • 与Terraform相比,流浪者的配置和配置选项受到限制。
  • 如果您正在基于云的环境中工作,则可以使用Terraform进行基础架构配置。
  • 如果您的环境是本地环境,或者您的VM将托管在数据中心上,则可以使用Ansible,chef或puppet进行配置管理和自动化。

答案 5 :(得分:-3)

正如@andrerpena所说,奥托是Vagrant的继承者。

来自www.ottoproject.io

  

Otto可以部署您的应用程序。 Vagrant的用户多年来一直想要一种将Vagrant环境部署到生产环境的方法。 不幸的是,Vagrantfile没有包含足够的信息来构建适当的生产环境,具有行业最佳实践。使用Appfile来编码这些知识,部署就是一个命令。