Puppet has a native module for handling fstab mounts. Here is an example:
class data_mounted {
mount { "/data":
device => "/dev/sdb1",
fstype => "ext4",
ensure => "mounted",
options => "defaults",
atboot => "true",
}
}
The “device” directive can take anything what you’d normally put in the first column of /etc/fstab, i.e. if you are mounting by label (which is probably the best way to mount partitions) then instead of “/dev/sdb1” call for “LABEL=data”, where ls -l /dev/disk/by-label/data should point to the actual [and existing] partition, which in my case is /dev/sdb1.
The “fstype” is the actual type of the partition, if you are not sure of the type you can check it with df -T. You can mount linux ext partitions, nfs, samba, 9p etc.
For more on fstab file system types and mount options check http://linux.die.net/man/8/mount