将本地Vagrant package.box上传到AWS

时间:2016-07-12 15:06:26

标签: amazon-web-services amazon-ec2 vagrant

所以,我过去一个月一直在一个流浪汉的ubuntu盒子里工作:我花了很多时间来定制它并安装我想要的所有软件。我通过正常的流浪者tutorial开始了所有这一切(也就是说,没什么特别的)。我packaged将我当地的流浪者信箱放入package.box文件中。 现在,我想将我的开发环境(例如package.box文件)移动到AWS上的Amazon EC2实例。我知道我不应该要求软件推荐,但我的问题基本上是:这可能吗,如果是的话,你可以指点我做一些人的例子吗?我已经读过packer可能是一个选项,但它看起来对我(一个非常缺乏经验的观点)可能我应该启动而不是现在尝试使用它。任何帮助将不胜感激 - 当我在当地设置一个新环境时,我不想花费几周时间。

修改

进展!我按照@ error2007s链接并按照教程进行操作。我已经将VMDK映像上传到s3并使用它配置了一个实例(所有这些都是使用CLI上的ec2-import-instance命令自动完成的)。但是,在我启动后,我没有看到公共IP来访问新实例 我认为这与cloud-init以某种方式有关,但我不确定那是什么。我用盒子附带的/etc/cloud/cloud.cfg文件以及列出的here文件试了一下,我上传的两个盒子都没有给我一个公共IP来访问。

编辑2

以下是我在控制台中看到的一些内容(它们对我来说都是正确的,但更有经验的眼睛可能会看到错误):

子网信息:

Auto-assign Public IP: yes

网络ACL: enter image description here

VPC信息:

DNS resolution: yes

DNS hostnames: yes

ClassicLink DNS Support: no

VPC CIDR: 172.31.0.0/16

DHCP选项集:

Options: domain-name = ec2.internal domain-name-servers = AmazonProvidedDNS

从我的角度来看,那些看起来都是对的,还是我错过了什么? 我按these instructions分配了一个弹性IP,但是当我ssh ec2-user@<elastic-ip>时,它会显示ssh: connect to host <elastic-ip> port 22: Connection refused。分配给实例的安全组设置为允许所有端口上的所有协议。此外,这是我第一次遇到弹性IP,我不确定它究竟在做什么。

3 个答案:

答案 0 :(得分:0)

亚马逊允许您将Vm作为EC2实例转移到AWS。查看本教程,这更简单。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingVirtualMachinesinAmazonEC2.html

答案 1 :(得分:0)

您想使用此处的Vagrant AWS提供商:

https://github.com/mitchellh/vagrant-aws

  

这是一个Vagrant 1.2+插件,可为Vagrant添加AWS提供程序,   允许Vagrant在EC2和VPC中控制和配置机器。

这将允许您使用Vagrant配置您的AWS实例,允许您将相同的本地开发环境迁移到AWS EC2实例。

这里有一个很好的教程:

https://nurmrony.wordpress.com/2015/03/15/vagrant-deploy-and-provisioning-an-amazon-ec2-instance/

答案 2 :(得分:0)

嗨,我找到了这些文章,但是我自己还没有对其进行测试。我仍在整理我的个人笔记并确定我的技术堆栈。我打算将Homestead流浪者盒子复制为EC2实例,因此我不必手动配置实例。

https://nurmrony.wordpress.com/2015/03/15/vagrant-deploy-and-provisioning-an-amazon-ec2-instance/

https://www.tothenew.com/blog/using-vagrant-to-deploy-aws-ec2-instances/

https://foxutech.com/how-to-deploy-on-amazon-ec2-with-vagrant/

https://blog.scottlowe.org/2016/09/15/using-vagrant-with-aws/

https://devops.com/devops-primer-using-vagrant-with-aws/

我发现他们的方法相似。我唯一担心的是“无用的添加框”部分。

我问自己,为了熟悉起见,如果我不得不再次进行此设置怎么办?自从我之前已经添加了一个无用的盒子(按照教程中的说明)后,会发生什么。