I don't know about this. I kinda liked your previous approach better. 

This approach is pretty confusing:
- Puppet generates a command + args to generate... from a erb template
- Puppet executes those commands, which the main command is another erb template
- That templated script is a script that echos out a the zone file components into the real zone file
- The real zone file is used by bind.

This is pretty complicated. 

What if you took a different approach:

- Use erb + concat to build out the zone file (what we have)
- Make that zone file zone.data, with the word SERIAL in place of the serial number
- Make it exec a `sed -i 's/SERIAL/$date_in_seconds zone.data' > zone`

I think that is more straightforward, still converges, and has only 1 intermediate step?