Examples of mounting and RAIDing EBS volumes with chef?


#1

hi. does anyone have any examples of using chef to mount and RAID EBS
volumes in ec2? i’m just getting started trying to do this, and could
use some examples as guides.

some of the particulars of my environment:

we have many databases (mysql) in ec2. some use EBS as mysql datastore,
some use ephemeral drives. both are RAIDed.

when we launch a database, we supply via userdata a list of
already-established volumes to attach and assemble as RAID10. once that
RAID10 EBS volume is assembled and mounted, mysql is started.

i’m poking around in velocity2011-chef-repo, but i don’t see EBS
directly used.

i have various hand-wavy questions like:

  • how should i arrange instance-to-volume mappings?
    ** continue supplying it via userdata at launch time?
    ** toss it into data bags?
    ** toss it into an attributes file?

in velocity2011-chef-repo’s recipe[database::ebs_volume] i notice it’s
grabbing AWS secrets from a data bag. i’d assume that data bag was
encrypted (but i haven’t played enough yet with encrypted data bags).
then i ask myself, can i use the database cookbook out of the box and
supply AWS creds via environment variables or in my knife.rb file?

LOTS of questions. i could use some examples to get me going…

thanks y’all,
kallen


#2

Ebs wasn’t used in the velocity demo repository.

I was going through tickets in the COOK project earlier tonight and
found this gist, which may be helpful.

On Thu, Nov 10, 2011 at 4:39 PM, kallen@groknaut.net wrote:

hi. does anyone have any examples of using chef to mount and RAID EBS
volumes in ec2? i’m just getting started trying to do this, and could
use some examples as guides.

some of the particulars of my environment:

we have many databases (mysql) in ec2. some use EBS as mysql datastore,
some use ephemeral drives. both are RAIDed.

when we launch a database, we supply via userdata a list of
already-established volumes to attach and assemble as RAID10. once that
RAID10 EBS volume is assembled and mounted, mysql is started.

i’m poking around in velocity2011-chef-repo, but i don’t see EBS
directly used.

i have various hand-wavy questions like:

  • how should i arrange instance-to-volume mappings?
    ** continue supplying it via userdata at launch time?
    ** toss it into data bags?
    ** toss it into an attributes file?

in velocity2011-chef-repo’s recipe[database::ebs_volume] i notice it’s
grabbing AWS secrets from a data bag. i’d assume that data bag was
encrypted (but i haven’t played enough yet with encrypted data bags).
then i ask myself, can i use the database cookbook out of the box and
supply AWS creds via environment variables or in my knife.rb file?

LOTS of questions. i could use some examples to get me going…

thanks y’all,
kallen


Opscode, Inc
Joshua Timberman, Technical Program Manager
IRC, Skype, Twitter, Github: jtimberman