How to output pretty json in puppet
It kept seeming like it should be straight forward. Various attempts by myself (mostly because I don't know ruby) seemed to fail. I'm just leaving it here now that I figured out how to get it working so I can find it again (and hopefully help others).
init.pp
$config_data = { "foo" => "bar" }
template.erb
<%= require "json"; JSON.pretty_generate config_data %>
I found configdata.tojson wasn't going to work for me because it seemed to output things in different orders each run.
(it was https://snippets.aktagon.com/snippets/412-How-to-pretty-print-JSON-data-with-Ruby that helped me figure this out)
Edit: While pretty, still doesn't sort so puppet can update the config file each run :( I will figure this out.
Edit: After much trial and error, I ended writing my own library. https://gist.github.com/2287885

I'm Gavin.
I'm a tinker, maker, and software developer.
At home I code, game, hang out, all the cool non robot things to do.
Heavily involved with Jenkins open source, and will often submit PRs to random other projects.
I also play games, both board and video games and love to read.
You can usually find me on various services as halkeye.
#notarobot