在生产中流浪

问题描述 投票:36回答:5

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

到目前为止,我已经像真机一样安装了虚拟机。

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

virtualhost vagrant infrastructure
5个回答
15
投票

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

我们在公司使用它的方式如下:

  1. 在Vagrant中为我们的托管服务器创建VM。
  2. 为每个服务器创建puppet定义。
  3. 为每个服务器创建黄瓜测试。
  4. 通过木偶进行基础设施更改并添加黄瓜测试。
  5. 启动我们的服务器以测试故障。
  6. 修复错误,释放和/或返回步骤4。

基本上,当我们对我们的变化感到满意时,我们会将我们的木偶变化投入生产,以实现它。

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


1
投票

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

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

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


0
投票

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

从他们的Github page

Otto的主要特点是:

  • 自动开发环境:Otto检测您的应用程序类型,并构建专门为该应用程序定制的开发环境,配置为零或最小。如果您的应用程序依赖于其他服务(例如数据库),它将自动在您的开发环境中为您配置和启动这些服务。
  • 专为微服务而构建:Otto了解依赖关系和版本控制,可以自动部署和配置应用程序及其对任何环境的所有依赖关系。应用程序只需要告诉Otto它的直接依赖;自动检测和配置依赖项的依赖项。
  • 部署:Otto知道如何部署应用程序以及开发它们。无论您的应用程序是现代微服务,传统的单片机还是介于两者之间的东西,Otto都可以将您的应用程序部署到任何环境中。
  • Docker:Otto可以使用Docker下载并启动开发依赖项,以简化微服务。应用程序可以自动容器化,以便在不更改开发人员工作流程的情况下简化部署。
  • 生产加固工具:Otto使用生产加固工具来构建开发环境(Vagrant),启动服务器(Terraform),配置服务(Consul)等。 Otto建立在为世界上最大的网站提供支持的工具之上。 Otto自动安装和管理所有这些工具,因此您不必这样做。

0
投票

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

我正在考虑为开发人员在虚拟机中启用vagrant,同时还可以选择将代码部署到生产环境的实时服务器。


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

-3
投票

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

来自www.ottoproject.io

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

© www.soinside.com 2019 - 2024. All rights reserved.