8

我正在尝试学习如何使用 Vagrant 来建立一个应该与已经存在的生产服务器完全一致(如果可能的话)的开发环境。

这里的问题是:实现这一目标的最简单方法是什么?

我是一名开发人员,我可以完全访问生产服务器,但它不是由我管理的。我只知道我在服务器上设置网站、使用 cPanel、一些 WHM 等的方式......

该服务器运行带有 Apache、MySQL 和 PHP 的 CentOS 6.5。

有没有一种方法可以“导出”该服务器的配置以及它拥有的所有应用程序、模块、版本等......并使用它来创建一个 Vagrant Box?还是手动分析所有内容并将其写下来?

如果要走的路是第二种选择,我可以就如何做到这一点得到任何建议而不会遗漏任何东西吗?

4

3 回答 3

2

这应该可以解决您的问题: http: //www.vmware.com/products/converter

这个想法是将您现有的生产服务器导出到可以导入到 Virtual box 的图像:

于 2015-03-16T11:58:08.970 回答
1

我认为没有直接的方法可以将现有的服务器配置导出到 Vagrant 盒子中,本质上,这需要您将服务器克隆为 Vagrant提供者之一支持的 VM 格式(例如VirtualboxOVA的文件)。

AFAIK,不幸的是,您可能必须手动执行此操作。我将采取的方式(至少在应用程序级别)是:

  1. 重复使用Vagrant Cloud中预定义的CentOS 6.5 LAMP 盒子之一,以避免从头开始重新安装所有软件。
  2. 如果还没有安装Virtualbox ,请安装它,因为它是 Vagrant 的默认提供程序。
  3. 复制您的生产 apacheconf/httpd.conf和(我认为这些是主要的),conf/extra然后modules将它们导入 Vagrant 框中的 apache 服务器。
  4. 使用mysqldump转储您的生产 MySQL 数据库。然后将模式和数据导入 Vagrant 框中的 MySQL 数据库。--no-data如果您的生产数据库对于您的开发需求来说太大,请使用排除数据导出的选项。(我分享的那个链接上的表 4.9 提供了一个完整的选项列表。)
  5. 重新部署您的 PHP 应用程序。
  6. 一旦您对 Vagrant box 中的所有调整感到满意,请使用 Virtualbox 克隆新 VM 作为基线。

如前所述,这些只是应用程序级别的设置和配置。您的生产服务器中可能还有其他与防火墙、SSH 密钥、用户权限等相关的配置,您可能需要也可能不需要在开发环境中复制这些配置。

希望这可以帮助。

于 2014-10-11T07:33:06.267 回答
0

您可以创建该 VM 的 vagrant 框,然后使用 vagrant init 部署该框。以下文章解释了如何为 virtualbox VM 执行此操作。本文还创建了 VM,在您的情况下 vm 已经存在。

创建你自己的流浪盒子

如果您使用的不是 virtualbox(vmware、kvm 等)。您需要弄清楚如何为您的提供商做这件事。

于 2014-10-14T19:46:18.517 回答