I wanted to be able to define nfs shares with puppet and have puppet take care of the exports line and exportfs. I found this page, but I didn't like that there was perl code thrown in the midst. I rewrote it to use an inline template instead.
The code is up on github at github.com/uphillian/puppet-nfsshare
The main difference is using an inline template to create the options to set.
$options_set = inline_template("
nfsopts.each do |opt| -set dir[.= \"
= @nfsshare \"]/client[.=\"
= @nfsaccess \"]/option[.=\"
= opt \"]