ebs_conductor
The EBS Conductor is a library for managing Amazon Elastic Block Storage volumes and snapshots. It is designed to persist a specific set of data (a “lineage”) between different compute instances.
EBS Conductor can be used on it’s own, but it’s most powerful when executed on an EC2 instance using Chef, and the ebs_conductor cookbook
Examples
Attach a new 1GB blan volume in the lineage “foobar” to a linux box at /dev/sdb1
ebs_conductor = Rgeyer::Gem::EbsConductor.new('...','...')
ebs_conductor.attach_from_lineage('i-abcd1234', 'foobar', 1, '/dev/sdb1')
Attach a specific snapshot to a 1GB volume in the lineage “foobar” to a linux box at /devb/sdb1
ebs_conductor = Rgeyer::Gem::EbsConductor.new('...','...')
ebs_conductor.attach_from_lineage('i-abcd1234', 'foobar', 1, '/dev/sdb1' {:snapshot_id => 'snap-abcd1234'})
Snapshot the lineage “foobar”, do not purge any old snapshots in the lineage
ebs_conductor = Rgeyer::Gem::EbsConductor.new('...','...')
ebs_conductor.snapshot_lineage('foobar')
Snapshot the lineage “foobar”, and purge old snapshots so that only 7 remain
ebs_conductor = Rgeyer::Gem::EbsConductor.new('...','...')
ebs_conductor.snapshot_lineage('foobar', {:history_to_keep => 7})
Snapshot the lineage “foobar” from the specified volume_id
This is useful if you’re trying to start a lineage from a “naked” instance, or if you are trying to create a new lineage from an existing one
ebs_conductor = Rgeyer::Gem::EbsConductor.new('...','...')
ebs_conductor.snapshot_lineage('foobar', {:history_to_keep => 7, :volume_id => 'vol-abcd1234'})
List of To Do Items
-
Support for stripes in a lineage
Copyright
Copyright © 2011 Ryan Geyer. See LICENSE.txt for further details.