mitchellh / vagrant-aws

Use Vagrant to manage your EC2 and VPC instances.
MIT License
2.61k stars 572 forks source link

root_device_type = ebs ? #193

Open FlorinAndrei opened 10 years ago

FlorinAndrei commented 10 years ago

I've launched an instance using the example on the front page and did some tests. 'vagrant halt' failed with:

~/.vagrant.d/gems/gems/excon-0.28.0/lib/excon/middlewares/expects.rb:6:in `response_call': UnsupportedOperation => The instance 'i-b2acfb92' does not have an 'ebs' root device type and cannot be stopped. (Fog::Compute::AWS::Error)

Looking at the instance, indeed, the root device type is instance-store. I assume if the root device type was ebs, then halt would work?

kris-luminar commented 10 years ago

I've got the same issue.

kris-luminar commented 10 years ago

Did you ever find a work-around for this?

markrebec commented 10 years ago

The default configuration points to an AMI that will spawn an instance using instance-store, and you're correct that an EBS backed instance can be halted.

The root device type is controlled by the AMI you're using. I use vagrant to provision instances which are then turned into custom AMIs for use in production autoscaling groups. For that I use the default Amazon Ubuntu 12.04 AMI (ami-59a4a230) as a base, which is paravirtual and EBS backed, but really you can use any AMI that meets your needs.

kris-luminar commented 10 years ago

Thank you @markrebec.

I figured out that I can do vagrant destroy with this instance-store AMI, I just can't do a vagrant halt. Amazon apparently destroys the entire instance when it powers down. Since vagrant halt is designed to be non-destructive, I now think it is a good thing that vagrant halt raises an error in this case.

bonzofenix commented 10 years ago

This configuration works for me:

aws.block_device_mapping = [      { :DeviceName => "/dev/sda1", 'Ebs.VolumeSize' => DISK_SIZE }    ]