vagrant 创建_使用Vagrant和PuPHPet创建环境

vagrant 创建

每个开发人员都知道,在提交错误报告时会感到恐惧,并且响应是代码可以正常工作。 或更糟糕的是,您会收到一个错误报告,并且不可能重复出现该问题。 通常,这些情况的发生是由于生产和开发环境之间的差异,甚至是两个开发人员环境之间的差异。 除了沮丧之外,真正的问题是软件是否将在生产中运行,因为这是最终目标。

我已经看到许多尝试解决此问题的方法。 十年多以前,开发团队中的每个人都可能购买了与生产中使用的计算机相同的计算机。 最近,一种常见的做法是建立一个供所有程序员共享的托管开发环境,并要求远程进行开发。 这是一个有效的解决方案,但是它具有不允许离线开发的巨大缺点。

它可以在我的机器上工作。

-任何开发人员

由于计算能力的提高,现代开发可以使用虚拟机来帮助解决此问题。 如果团队中的每个开发人员都有一个虚拟机要进行开发,则可以为整个团队创建一个虚拟机配置,这是一项一次性的任务。 正如Composer会为您安装库一样,您可以使用虚拟机来标准化系统本身。 本教程向您介绍开源工具,这些工具可以结合使用以自动执行虚拟机的创建和配置过程。

用于本地开发的虚拟机

这是Wikipedia对虚拟机的定义:

系统虚拟机提供了一个完整的系统平台,该平台支持执行完整的操作系统(OS)。 这些通常模拟现有的体系结构,并且旨在提供一个平台来运行无法使用实际硬件的程序。

使用虚拟机模拟物理计算机可以为您带来开发和部署一致性的好处。 如果您要部署到诸如Amazon Web Services之类的云架构,那么您已经在部署到虚拟机了。 在这里,我将重点介绍在本地计算机上运行虚拟机的过程。

您可以选择几种软件解决方案来创建本地虚拟机。 常见选项包括VMware (Windows®/Linux®/ Mac), Parallels (Mac)和VirtualBox (Windows / Linux / Solaris / Mac)。 在本教程中,我将使用VirtualBox。 VirtualBox不仅可以在所有这些系统上运行,而且可能是PHP开发人员目前最常用的解决方案。 由Oracle作为开放源代码项目开发的VirtualBox是100%免费使用的。

要继续进行操作,请转到VirtualBox下载页面,然后下载适用于您的操作系统的安装程序。 运行安装程序,它将指导您完成操作系统的典型软件安装过程。 安装后,启动程序。 Welcome屏幕显示您没有任何虚拟机,如图1所示。

图1. VirtualBox的全新安装
VirtualBox应用程序的欢迎屏幕的屏幕截图

现在,我将完成创建虚拟机的手动过程。 (您将在本教程的后面部分学习如何自动执行这些步骤,但是我建议您动手进行操作,以便您理解该过程所需要的内容。)单击“ 新建”按钮后,“名称和操作系统”对话框将询问我为机器命名,然后选择所需的机器类型。 如图2所示,我选择进行Ubuntu安装。

图2.选择制作一个Ubuntu机器
选择制作Ubuntu机器的屏幕截图

现在,我进入了一系列对话框。 VirtualBox询问要分配多少内存给计算机,要制造多少虚拟磁盘,以及磁盘应使用哪种文件格式。 建议您为所有这些值选择默认值,除非有特殊原因需要这样做。 单击所有默认值后,将创建虚拟机,并且可以看到整个配置,如图3所示。

图3.新虚拟机的配置
正在显示的新虚拟机的屏幕截图

在这一点上,我还没有工作的虚拟机。 VirtualBox为我创建了一个虚拟机,该虚拟机已准备就绪,可以将Ubuntu安装到其中。 但是,该机器现在与由硬件组件组装而成的物理机器没有什么不同。 您可以打开它,但是除非将操作系统安装到硬盘驱动器,否则将不会发生任何事情。

当我单击Start按钮启动此新虚拟机时,下一个对话框会要求我指定我要使用的安装磁盘,如图4所示。

图4.提示安装介质
提示安装媒体的屏幕截图

如果准备在此时完成为Ubuntu制作自定义虚拟机的操作,则可以将VirtualBox指向Ubuntu安装程序的磁盘映像,然后将开始Linux安装的整个过程。 但是现在这不是目标。 目标是制造可重复的,一致的虚拟机-因此,比手动安装可以提供的自动化需要更多的自动化。

介绍流浪汉

Vagrant是一个自动化层,旨在处理VirtualBox和其他虚拟机软件的自动虚拟机配置。 Vagrant完全自动化了我在“ 用于本地开发的虚拟机 ”部分中配置虚拟框以创建新框的步骤。

通过使用自定义配置文件,Vagrant可以为虚拟机建立各种设置并安装您选择的基本操作系统。 您可以详细指定所需的虚拟机。 Vagrant将所有这些信息保存到名为Vagrantfile的文件中,然后您可以将该文件提交到软件项目中。 Vagrantfile与用于构建项目的composer.json文件类似(请参阅“ PHP更新 :用于PHP依赖项处理的Composer ”),Vagrantfile精确地指定了您要安装的系统。 您只需发出vagrant up命令,然后Vagrant创建并启动该服务器。

Vagrant项目还访问许多预配置计算机的目录,以充当您可以构建的基础配置,从而非常轻松地为您自己创建新安装。

现在,通过使用Vagrant,我可以自动创建我先前想要的Ubuntu虚拟机。 从其“ 下载”页面下载Vagrant,然后为您的操作系统运行适当的安装程序。 (再次,您将在本教程的后面部分中学习有关进一步的自动化的知识,这些知识将取代我将在此处执行的步骤,但是我建议您动手操作,以便理解该过程。)

创建和配置Ubuntu虚拟机

Vagrant是一个命令行工具,因此安装后不会看到Vagrant GUI。 在Vagrant文​​档中 ,您可以找到HashiCorp Atlas盒目录的链接。 与Packagist for Composer相似,此目录是Vagrant查找虚拟机映像作为基础映像的默认位置。 该目录提供了一个搜索索引以查找框,如图5所示。

图5. HashiCorp Atlas框目录
HashiCorp Atlas目录的屏幕截图

在页面顶部,对我来说是个不错的选择:最新Ubuntu版本的正式版本Trusty Tahr。 我注意到目录名称( ubuntu/trusty64 )中所示的框名称,现在可以运行以下命令:

vagrant init ubuntu/trusty64
vagrant up

发出这些命令时,您将看到多行屏幕输出(类似于图6所示)。

图6.发出vagrant initvagrant up命令的输出
通过Vagrant启动Ubuntu的屏幕输出

就是这样。 我受够了。 我不仅创建了VirtualBox计算机,而且还使用Ubuntu配置了它并启动了它。 我的虚拟机在后台运行,可以通过键入vagrant ssh来连接到它。

其他无业游民的命令

您将要使用其他一些常见命令,例如:

vagrant halt
强制关闭正在运行的虚拟机。
vagrant destroy
关闭虚拟机,然后将其完全删除。
vagrant suspend
挂起机器并保存当前状态。
vagrant resume
恢复以前挂起的计算机。
vagrant status
为您提供虚拟机的当前状态。

Vagrant提供了许多其他功能,您可以在文档中阅读这些功能,例如同步的文件夹(这样,您不必将ssh放入框内即可编辑代码),特殊的联网功能,共享框等。 您甚至可以配置Vagrantfile以同时创建和管理多台计算机。 配置文件的复杂性可能有些棘手-但接下来,我将向您展示为什么这不是问题。

介绍PuPHPet

到目前为止,我已经安装了VirtualBox和Vagrant,并使用Vagrant来自动创建虚拟机。 但是我仍然需要在虚拟机上安装软件。 再一次,手动执行此步骤可能会导致不一致。 幸运的是,有几种自动化的IT (也称为基础设施自动化 )解决方案可用于此目的。 其中包括PuppetLabs的开源Puppet项目。 Puppet使用了一个稍微复杂的,有大量文档的配置文件系统,您可以在其中指定要安装的软件,运行的命令,调整的设置等。

2013年年中,一位名叫胡安·特雷米尼奥Juan Treminio)PHP开发人员刚刚通过学习如何将所有这些部分完美地结合在一起来完成工作:如何配置Vagrant,以及如何使用复杂的Puppet文件来构建一个完全自动化的系统。 他认为其他PHP开发人员不必应对这种斗争,因此PuPHPet诞生了。 PuPHPet是Treminio构建的在线GUI,您可以使用它选择将机器部署到的位置,所需的操作系统以及要在其上安装/配置的软件。 然后,PuPHPet会为您生成Vagrantfile和Puppet配置。 然后,您需要做的就是vagrant up ,一切正常。

假设您已经安装了VirtualBox和Vagrant,请访问PuPHPet主页 。 单击“ 单击此处立即开始使用”链接后,您将开始浏览一系列易于使用的配置页面。 图7显示了入门页面。

图7. PuPHPet入门页面
PuPHPet入门页面的屏幕截图

在该过程的每个步骤中,当您浏览左侧菜单时,都将配置服务器的某些方面:

  • 部署目标 :在这里,您选择虚拟机提供程序(VirtualBox是默认选择)以及要使用的操作系统和发行版,例如Ubuntu Trusty。
  • 系统 :您可以指定要安装的软件包,例如vim ,设置用户/组/ cronjobs等。
  • Web服务器 :您可以选择安装Nginx或Apache,也可以预先配置Web服务器。
  • 语言 :对于PHP(默认设置;其他选择包括Ruby,Python和Node.js),您不仅可以选择哪个版本,还可以根据需要更改PHP配置。
  • 数据库 :MySQL是此处的默认安装。 您提供基本的配置信息,例如root密码和您想要为您创建的任何数据库。

其他菜单项(例如邮件工具,工作队列和搜索服务器)为高级Web应用程序可能需要的其他工具提供了类似的选项。

做出所有配置选择(对于标准PHP开发系统而言,默认配置是可行的)之后,您将进入“ 创建存档”菜单项。 单击Create Archive以转到Download Your Customized Archive页面,如图8所示。

图8. PuPHPet页面,用于下载您的定制档案
PuPHPet下载-归档页面的屏幕截图

单击继续,然后完成! 创建Vagrantfile并获取包含所有配置的ZIP文件。

您已经创建了一个可重用的系统,可以与其他开发人员共享该系统作为可重复的资源。 ZIP下载不仅包含Vagrantfile,而且包含包含其余配置的文件夹(用于Puppet)。 您只需运行vagrant up可以开始按照您的确切规范构建系统。 确保有一些空闲时间; 完成所有必要的安装可能需要一段时间。 您可以将此配置签入版本控制系统中,也可以与同事共享。 您也可以根据需要进入puphpet目录中的配置文件,然后进一步配置或调整系统。 我在“ 介绍无业游民 ”一节中介绍的所有无业游民命令也适用于该无业游民框。

结论

在本系列中 ,您已经了解了PHP从早期开始就已经取得了长足的发展。 该语言本身不仅经受住了时间的考验,而且还为82%的Internet网站提供了强大的支持,而且还发展成为一个复杂的高级系统。 PHP生态系统也围绕该语言发展起来,从而可以使用PHP进行专业的企业级开发。 无论您是为公司创建下一个Facebook还是企业内部网,PHP都是一个出色而强大的选择。 PuPHPet最近在生态系统中的添加消除了开发过程中的许多麻烦,尤其是在大型项目中,数十个或数百个PHP开发人员都共同致力于一个共同的目标。


翻译自: https://www.ibm.com/developerworks/opensource/library/wa-php-renewed_4/index.html

vagrant 创建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值