设置 Vagrant 环境与生产服务器完全相同

8
我正在尝试学习如何使用Vagrant,并想建立一个开发环境,使其与现有的生产服务器完全相同(如果可能的话)。
问题是:最简单的方法是什么?
我是一名开发人员,可以完全访问生产服务器,但它不是由我管理的。 我只知道如何在服务器上设置网站、使用cPanel、一些WHM等……
该服务器运行CentOS 6.5,带有Apache、MySQL和PHP。
是否有一种方法可以“导出”该服务器的配置及其所有应用程序、模块、版本等,并使用它来创建Vagrant Box?还是需要手动分析每个细节并将其写下来?
如果选择第二个选项,我能否获得任何建议,以便不会漏掉任何细节?
3个回答

2

1

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

据我所知,不幸的是您可能必须手动完成此操作。我将采取的方式(至少在应用程序层面上)是:

  1. 重复使用CentOS 6.5 LAMP boxes中预定义的一个,在Vagrant Cloud中,以避免从头安装所有软件。
  2. 如果尚未安装,则安装Virtualbox,因为它是Vagrant的默认提供程序。
  3. 复制生产Apache conf/httpd.confconf/extramodules(我认为这些是主要的),并将它们导入到您的Vagrant盒子中的Apache服务器中。
  4. 使用mysqldump转储生产MySQL数据库。然后将模式和数据导入到Vagrant盒子中的MySQL数据库中。如果您的生产数据库过大而无法满足开发需求,请使用--no-data选项排除数据导出。(我分享的链接上的表格4.9提供了全面的选项列表。)
  5. 重新部署PHP应用程序。
  6. 一旦您对Vagrant盒子中的所有调整感到满意,请使用Virtualbox将新VM克隆为基线。
如前所述,这些仅是应用程序级别的设置和配置。您可能需要在开发环境中复制的生产服务器中可能涉及防火墙、SSH密钥、用户权限等方面的其他配置。

希望这能帮到您。


非常感谢您的回答。我有几个问题需要澄清:5. 这一步骤是用来做什么的,我应该如何具体实现?6. 我不确定您所说的“使用Virtualbox将新VM克隆为基线”的意思是什么。这个基线是用来做什么的? - Albert
#5 指需要部署到 apache httpd 的任何应用程序。在这里有一些简单的步骤 链接,请参考第 5 步。至于 #6,一旦您启动了 Vagrant 盒子,您就可以在 Virtualbox 中看到它的实例。然后,您可以按照这些说明创建盒子的快照。 - ivan.sim
谢谢!那么对于PHP配置,假设安装了相同的模块,我可以直接复制PHP.ini文件吗? - Albert
是的。您应该能够直接复制它。 - ivan.sim

0

您可以创建一个虚拟机的vagrant box,然后使用vagrant init部署该box。以下文章说明了如何为virtualbox VM执行此操作。在您的情况下,VM已经存在。

创建自己的vagrant box

如果您使用的不是virtualbox(例如vmware、kvm等),则需要弄清楚如何为您的提供商执行此操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接