最类似于Amazon EC2实例的游民箱


37

是否有可供Vagrant下载的“框”,它们与Linux版本和可用于Amazon EC2实例的软件包紧密镜像?

我正在使用Vagrant在本地进行测试,当前正在使用Precise32框。我正在使用“ Amazon Linux AMI 2013.03” AMI将代码部署到Amazon EC2实例。

我面临的问题是,可以在Precise32盒子上安装的软件包具有不同的名称,例如

  • php5-fpm-在“无业游民”框中
  • php54-fpm-在Amazon EC2实例中。

尽管我可以通过使用Puppet配置文件中的变量来处理不同的程序包名称来解决此问题,但这听起来有点像hack。

因此,是否有任何可用的工具框可以紧密反映Amazon EC2环境。

还是我可以告诉一个无家可归的人使用与Amazon EC2实例相同的软件包来源?

为了澄清一件事-我想这样做的原因是我可以在本地进行测试而不必先提交所有内容。尽管Vagrant支持将AWS作为提供商,但实际上无法实现在本地进行测试。


希望得到有用的答案,我很乐意为这种用例准备一个Amazon Linux本地安装。
ceejayoz

1
不使用Amazon Linux?
迈克尔·汉普顿

1
@MichaelHampton拥有构建并支持Amazon的Amazon变体通常很不错。开箱即用的AWS工具之类的东西非常有价值。
ceejayoz

@ceejayoz是的,这很有用,但是在系统的其余部分无法正常工作时没什么用。我对Amazon Linux的构建质量没有印象。似乎总是有一些重要的东西被打破了。
迈克尔·汉普顿

YMMV,我猜是。我尚未在我们的nginx / php-fpm / percona集群上遇到这种损坏。
ceejayoz

Answers:


11

不可以,无法在EC2之外使用Amazon Linux。如果要使用Red Hat Enterprise Linux派生产品(即Amazon Linux),建议在Vagrant和EC2上都使用CentOS 6。你会发现许多CentOS的base箱在这里,和官方的AMI列在这里


1
看起来确实比大多数情况都相似,但仍然略有不同,例如Amazon linux的软件包中有单独的PHP 5.3和PHP 5.4。我认为,要想让Vagrant环境足够接近以匹配Amazon的环境,以使其与安装脚本完全相同,我的想法是不可行的,而无需进行大量创建自定义框的工作。
达纳克(Danack)

正确,Amazon Linux添加了RHEL和CentOS之外的其他新软件。这就是为什么我不建议使用Amazon Linux的原因。
sciurus

1
对于5年后的现在(即我)的那些人(现在),在2018年,此答案不再成立:>“无法在EC2之外使用Amazon Linux” Amazon现在提供虚拟机映像(对于VirtualBox, Amazon Linux的Ansible,VMWare,Windowz-hyper-z-whatever和Docker),它基本上只是一个最新的CentOS发行版,已针对EC2进行了优化和预配置,并预先安装了Amazon的API工具和cloudinit软件包,它们完全支持并鼓励您在本地和AWS上运行它:Amazon Linux 2 aws.amazon.com/amazon-linux-2/#Resources
gigawatt

19

注意:此答案不是关于为“ Amazon Linux”找到一个无所事事的盒子。这个答案是关于帮助原始发布者解决在生产环境中使用与开发人员相同的系统的目标,而后者恰好是Ubuntu。正如您在下面的评论中看到的,OP同意这可以解决他的问题。


Canonical在EC2上提供了官方的Ubuntu AMI,并提供了相应的官方Vagrant盒供下载。

对于Ubuntu 12.04 Precise,AMI在以下位置列出

http://cloud-images.ubuntu.com/precise/current/

而“无业游民”框在

http://cloud-images.ubuntu.com/vagrant/precise/current/

您可以使用它在EC2上以与在dev中本地使用相同的基本配置开始。


1
这些不会像基于RHEL的Amazon Linux AMI那样起作用。
ceejayoz

2
谢谢,这将为我自己解决问题,因为我并不特别在意使用哪种Linux。但是,最好还是看看是否有人通过制作亚马逊风味的Vagrant盒子解决了它。
达纳克

1
@ceejayoz:我建议通过切换prod而不是切换dev来解决OP的核心问题,即在dev + prod上具有相同的映像。并非所有答案都需要将自己局限于我们读入问题中的假设。我们正在尝试做的是通过实用的解决方案帮助提问者解决他们的现实世界问题。“不,你做不到”是一个有效的答案,但我感谢“您可以通过...实现目标”
埃里克·哈蒙德


4

同样值得一看的http://www.packer.io,它可以为您的外部游民提供完全相同的ami图像


1
欢迎来到服务器故障!尽管从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
slm

1
注意,是否不想在完整的安装和使用情况页面内容中乱扔答案?但如果那是我的偏爱,我下次再做
digitaladept

可以解释,它不必是全部细节,而仅是要点。
slm

1
Packer不会为您“为您的外部游民提供完全相同的ami图像”。据我了解,Packer可以获取一个ami基础图像,并在其上运行您的自定义配置脚本以创建输出ami。它还可以使用无业游民的盒子(ovf)或.iso映像作为基础,以运行相同的配置脚本来制作输出无业游民的盒子。虽然配置脚本将相同,但是基本框将有所不同。您不能直接从AMI创建无用的盒子。
时髦的

@poshest因此,我们仍然需要相同的开发和生产环境(例如Ubuntu),以使Vagrant框的行为(几乎)与AMI相同?
富兰克林于

2

Amazon Linux基于Redhat / CentOS,因此,如果您在本地运行其中之一,则名称将更紧密地匹配。

基于Debian / Ubuntu的Linux操作系统更改了软件包名称,例如“ dev”而不是“ devel”作为开发软件包的后缀。

顺便说一句,您可能想检查Amazon Linux实例上“ rpm -qa”的输出,对它进行匹配以匹配CentOS / Redhat软件包名称,然后考虑创建自己的与OS紧密匹配的OS版本。


1

截至2017年,是的。

Vagrant框的名称是在Vagrant云中托管的mvbcoding / awslinux(与所有其他公共Vagrant框一样)。

您可以使用以下命令启动一个框。

vagrant init mvbcoding/awslinux; vagrant up --provider virtualbox

欢迎,您能否提供更详细的答案?
bgtvfr

@bgtvfr他表示我们现在确实有一个“类似于Amazon EC2实例的流浪者盒子”,即mvbcoding / awslinux。那是awslinux迄今为止命名的唯一盒子。
富兰克林·于

使用Vagrant云上托管的公用箱是否安全?Vagrant云在接受公共邮箱之前会进行任何审核吗?
Varun

谁知道?您需要问桥本(Mitch Hashimoto)。
eneset
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.