Well I started to post about getting something broken. I modified cloudstack_resources to take an argument for userdata. I was getting all kinds of issues with that, until I realized that the argument in userdata has to be base64 encoded. I fixed that, and now my VMs can get their metadata! I had seen a demo with this software at a puppet conference but it's become clear to me it's not exactly complete, so I have been fighting to learn ruby ever since to make things work.
Thanks for the help.