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