This is a cookbook that makes it easy to create/attach EBS volumes, and create filesystems and RAID arrays on them.
Add recipe[ebs]
to your run list, and configure these attributes:
Create a RAID 10 across four 10GB volumes each with 2000 provisioned iops, make it an lvm logical volume, format it with XFS, and mount it on
/data
.
{
:ebs => {
:raids => {
'/dev/md0' => {
:num_disks => 4,
:disk_size => 10,
:piops => 2000,
:raid_level => 10,
:fstype => 'xfs',
:mount_point => '/data',
:uselvm => true,
}
}
}
}
Add recipe[persistent]
to your run list, and configure these attributes:
Create a RAID 10 across the volumes specified in the persistent_volumes
array, do not use LVM, format it with XFS, and mount it on /data
.
{
:ebs => {
:raids => {
'/dev/md0' => {
:raid_level => 10,
:fstype => 'xfs',
:mount_point => '/data',
:uselvm => false,
:persistent_volumes => [
"vol-xxxxxxxx",
"vol-xxxxxxxx",
"vol-xxxxxxxx",
"vol-xxxxxxxx"
]
}
}
}
}
Create a 10GB EBS General Purpose SSD volume, format it with XFS, and mount it on /data
with noatime
as an option.
{
:ebs => {
:volumes => {
'/data' => {
:size => 10,
:volume_type => 'gp2',
:fstype => 'xfs',
:mount_options => 'noatime'
}
}
}
}
mount_options
are optional and will default to noatime,nobootwait
on all platforms except Amazon linux, where they will default to noatime
.
You can provide encrypted: true
for an encrypted volume.
Expects a credentials
databag with an aws
item that contains aws_access_key_id
and aws_secret_access_key
.
You can override the databag and item names with node[:ebs][:creds][:databag]
, and node[:ebs][:creds][:item]
, but the key names are static.
This code was originally forked from the Scalarium ebs cookbook which has since been taken over by AWS Opsworks.