Amazon web services 将本地Vagrant package.box上载到AWS
所以,在过去的一个月里,我一直在本地一个流浪的ubuntu盒子里工作:我花了很多时间来定制它,并在上面安装我想要的所有软件。这一切都是我通过普通的流浪汉开始的(也就是说,没什么特别的)。我将我的本地流浪者箱放入一个Amazon web services 将本地Vagrant package.box上载到AWS,amazon-web-services,amazon-ec2,vagrant,Amazon Web Services,Amazon Ec2,Vagrant,所以,在过去的一个月里,我一直在本地一个流浪的ubuntu盒子里工作:我花了很多时间来定制它,并在上面安装我想要的所有软件。这一切都是我通过普通的流浪汉开始的(也就是说,没什么特别的)。我将我的本地流浪者箱放入一个package.box文件中。现在,我想将我的开发环境(例如,package.box文件)移动到AWS上的AmazonEC2实例。我知道我不应该要求软件推荐,但我的问题基本上是:这可能吗?如果可能,你能给我举一些人们这样做的例子吗?我已经读到这可能是一个选择,但在我看来(一个非常缺乏经
package.box
文件中。现在,我想将我的开发环境(例如,package.box
文件)移动到AWS上的AmazonEC2实例。我知道我不应该要求软件推荐,但我的问题基本上是:这可能吗?如果可能,你能给我举一些人们这样做的例子吗?我已经读到这可能是一个选择,但在我看来(一个非常缺乏经验的观点),也许我应该从那开始,而不是现在就尝试使用它。任何帮助都将不胜感激——我不想在本地建立一个新环境的时候花几个星期来建立一个新环境
编辑:
进步!我遵循@error2007s链接并遵循教程。我已经将VMDK映像上载到s3并使用它配置了一个实例(所有操作都是通过CLI上的ec2 import instance
命令自动完成的)。但是,在启动新实例后,我看不到可以访问它的公共IP。我认为这与
cloudinit
有关,但我不确定这到底是什么。我用盒子附带的/etc/cloud/cloud.cfg
文件和列出的文件都试过了,我上传的两个盒子都没有给我一个公共IP来访问
编辑2:
以下是我在控制台中看到的一些东西(它们在我看来都是对的,但经验丰富的眼睛可能会看到一些错误):
子网信息:
自动分配公共IP:是
网络ACL:
专有网络信息:
DNS解析:是
DNS主机名:是
ClassClink DNS支持:否
VPC CIDR:172.31.0.0/16
DHCP选项集:
选项:域名=ec2。内部域名服务器=AmazonProvidedDNS
从我的角度来看,这些看起来都不错,还是我遗漏了什么?我为每个用户分配了一个弹性IP,但当我
ssh ec2 user@
时,它会显示ssh:connect to host port 22:Connection-seeded
。分配给实例的安全组设置为允许所有端口上的所有协议。此外,这是我第一次遇到弹性IP,我不确定它到底在做什么。Amazon允许您将Vm作为EC2实例传输到AWS。检查本教程,这更简单
您想使用此处找到的流浪AWS提供商: 这是一个Vagrant 1.2+插件,它向Vagrant添加了一个AWS提供程序, 允许流浪者控制和提供EC2和VPC中的机器 这将允许您使用Vagrant配置AWS实例,从而允许您将相同的本地开发环境迁移到AWS EC2实例 这里有一个很好的教程:
您好,我找到了这些文章,但我自己还没有测试过。我仍然在整理我的个人笔记和识别我的技术堆栈。我打算将Homestead vagrant box复制为EC2实例,因此我不必手动配置实例 我发现他们的做法相似。我唯一担心的是“流浪者添加框”部分
我问自己,如果为了熟悉起见我不得不再次进行此设置,会发生什么情况,因为我之前已经添加了一个vagrant框(如教程中所述,是虚拟框)。当您将本地服务器移动到AWS时,您是否希望继续依赖vagrant访问EC2实例?可能,可能不是。我想我想要的是在amazon上注册一个AMI,从那时起,我将能够使用vagrant轻松地使用它(正如@rodrigo-m在下面指出的)。我目前正在按照您的答案中的说明进行操作,我们将看看它是否有效。一个好的模式是在开发中以及将实例推送到EC2时继续使用Vagrant。这样,您就不必预烘焙AMI,也不必随意配置选项。一旦配置了AWS提供程序,您当然可以保存AMI映像。您是在VPC中启动的吗?检查您的子网设置以重新分配公共IP。确保子网本身是公共的。如果需要的话,分配一个弹性IP。是的,我以前发现过。根据我的理解,这是为了开始使用vagrant+AWS。下次我从头开始的时候,我会记住这一点,我认为这无关紧要。将6-10字段添加到现有的vagrant文件中,然后
vagrant up--provider=aws
就有了一个工作实例。如果需要,从那里创建一个AMI。