Puppet-graphite is a project mainly written in Python, it's free.
Puppet module to manage graphite
I created this module to use the web interface against a collectd/rrd installation so I've only dealt with graphite-web and whisper, there's no support for carbon at this time.
There is also a "patches" directory that ships a diff to make the rrd support working. The class could be improved to support different patches that can be selectively picked by the user.
Credit to vvuksan for his graphite-ganglia puppet manifest that got me started. https://github.com/vvuksan/ganglia-misc/tree/d65de0a2b670fbe8e996823ed88a0300da6e47a8/graphite
To use it just:
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin" }
include graphite::buildenv include graphite::whisper include graphite::web
Variables of what is installed and where is defined in graphite::params