It should be pretty self-evident that this process is painful and sucks. I need this process to run once for every "volume" I create. I have multiple volumes for elasticsearch-data1, elasticsearch-data2, and so on, for which this process is repeated.

I'm having a hard time finding modules in the forge which will do this for me. I've found the LVM module, but then I lose disk alignment with parted and GPT. There's no BTRFS module for creating/managing subvolumes, and no solid module for fstab that I've found. It seems that most Puppet work is considered to start after you've done setup of your machine, which isn't really an option for my current work.

Is there something I'm missing, or do I have to write modules to manage parted, btrfs, and more, and then just chain the dependencies in order?