42

我一直在阅读有关 Vagrant 的文章,我发现它对我的开发非常有用。我目前正在管理一系列服务(邮件、Web、LDAP、文件共享等),其中一个经常出现故障并需要快速备份。是否可以(并且推荐)将 Vagrant 用于这些目的?

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

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

4

6 回答 6

19

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

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

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

基本上,当我们对我们的更改感到满意时,我们会将我们的 puppet 更改投入生产以实现它。

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

于 2012-11-29T00:01:56.873 回答
2
  • 根据我的经验,Vagrant 主要用于开发环境。
  • 例如,与 Terraform 相比,Vagrant 配置和配置选项是有限的。
  • 如果您在基于云的环境中工作,则可以使用 Terraform 进行基础设施配置。
  • 如果您的环境是本地的,或者您的虚拟机将托管在数据中心上,您可以使用 Ansible、chef 或 puppet 进行配置管理和自动化。
于 2019-08-25T21:19:07.423 回答
1

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

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

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

于 2017-06-12T22:35:09.203 回答
0

Hashicorp 刚刚发布了Otto,这意味着要成为 Vagrant 的继任者。它旨在支持部署环境。

从他们的Github 页面

奥托的主要特点是:

  • 自动开发环境:Otto 检测您的应用程序类型并构建专门为该应用程序量身定制的开发环境,配置为零或最少。如果您的应用程序依赖于其他服务(例如数据库),它会在您的开发环境中自动为您配置和启动这些服务。

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

  • 部署:Otto 知道如何部署应用程序以及开发它们。无论您的应用程序是现代微服务、遗留单体还是介于两者之间的东西,Otto 都可以将您的应用程序部署到任何环境中。

  • Docker : Otto 可以使用 Docker 下载并启动依赖项进行开发,以简化微服务。应用程序可以自动容器化以使部署更容易,而无需更改开发人员的工作流程。

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

于 2015-09-29T13:27:08.910 回答
0

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

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

于 2019-02-25T16:15:01.603 回答
-4

正如@andrerpena 所提到的,Otto 是 Vagrant 的继任者。

来自www.ottoproject.io

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

于 2016-06-29T09:13:39.037 回答