有没有办法在AWS内部运行Virtualbox?

时间:2017-01-20 20:09:17

标签: amazon-web-services vagrant virtualbox

我正在尝试自动化一些VM构建过程。我们使用Vagrant,Virtualbox作为我们的提供商。我们希望我们的VM构建在EC2上进行,但是为了构建Virtualbox需要启动的映像。由于Virtualbox无法在EC2计算机上运行,​​我想知道是否有任何其他AWS工具可以帮助解决这个问题。

3 个答案:

答案 0 :(得分:1)

要构建EC2 AMI并从中启动一些实例,您可以使用Boxfuse的通用Linux x64支持:https://boxfuse.com/docs/payloads/linux-x64

您需要做的就是传入一个tar.gz文件和要运行的命令,其余部分将由您处理。

免责声明:我是Boxfuse的创始人兼首席执行官

答案 1 :(得分:0)

不确定为什么要在AWS上的容器中运行代码。但你绝对可以使用Docker see here。事实上,一些AWS服务使用底层控制器,例如, Elastic Beanstalk。

我也听说过boxfuse服务有助于部署自动化。据我所知,它可以创建AWS可以直接运行的映像。我自己从未使用过这项服务,因此无法说清楚。

答案 2 :(得分:0)

Vagrant有一个" AWS"允许您从本地计算机上在EC2上运行Vagrant的提供程序:

$ vagrant plugin install vagrant-aws
$ vagrant up --provider=aws

如果您已经为VirtualBox配置了一个方框,则需要先使用vagrant destroy

删除它

您还需要使用Amazon AMI而不是常规框

vagrant box add aws-dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
你的Vagrantfile中的

config.vm.box = "aws-dummy"
require 'vagrant-aws'
config.vm.provider 'aws' do |aws, override|
  aws.access_key_id = ENV['AWS_ACCESS_KEY_ID']
  aws.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
  aws.keypair_name = 'default'
  aws.region = 'us-east-1'
  aws.ami = 'ami-e13739f6'
  aws.security_groups = ['default']
  override.ssh.username = 'ubuntu'
  override.ssh.private_key_path = '~/.ssh/ssh-keypair-file'
end

https://www.vagrantup.com/docs/getting-started/providers.html

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