Skip to content

Instantly share code, notes, and snippets.

@chasebolt
Last active November 13, 2015 02:01
Show Gist options
  • Save chasebolt/8ac9ef73a55dd388d8e3 to your computer and use it in GitHub Desktop.
Save chasebolt/8ac9ef73a55dd388d8e3 to your computer and use it in GitHub Desktop.
cloud-init: run in bootcmd. image is expected to have ephemeral devices letters b-e.
#!/bin/bash
set -e
if lvs ephemeral/data > /dev/null 2>&1; then
echo 'lvm already created; exiting'
exit 0
fi
if ls /dev/xvd* > /dev/null 2>&1; then map='xvd'; fi
if ls /dev/sd* > /dev/null 2>&1; then map='sd'; fi
if [ -z $map ]; then echo 'no drives found; exiting'; exit 0; fi
if ! ls /dev/$map[b-e] > /dev/null 2>&1; then
echo 'no ephemeral drives found; exiting'
exit 0
fi
pvcreate /dev/$map[b-e]
vgcreate ephemeral /dev/$map[b-e]
lvcreate ephemeral -n data -l 90%FREE
mkfs.ext4 /dev/ephemeral/data
echo '/dev/ephemeral/data /data ext4 defaults,nofail,comment=cloudconfig 0 0' >> /etc/fstab
! [ -d /data ] && mkdir /data
mount /data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment