The Puppet Dashboard is a Puppet web interface that provides node management and reporting tools. Nodes can be exported in YAML format, allowing the dashboard to be used as an external node classification tool.
- ruby (built with iconv support) >= 1.8.1
- rake >= 0.8.3
- ruby mysql bindings (
gem install mysqlfor ruby >= 1.8.6 or use your package manager's mysql-ruby package)
Obtain the source:
git clone git://github.com/reductivelabs/puppet-dashboard.git
Configure the database:
config/database.ymlfor your database
Start the server:
Import Reports (optional):
RedHat and CentOS users: see Install puppet-dashboard on RedHat/CentOS 5 : Mike Zupan's Random Blog
This will start a local Puppet Dashboard server on port 3000. As a Rails application, Puppet Dashboard can be deployed in any server configuration that Rails supports. Instructions for deployment via Phusion Passenger coming soon.
Note: Puppet Dashboard is currently MySQL only. Other databases coming soon.
To import puppet run reports stored in /var/puppet/lib/reports:
To specify a different report directory:
rake reports:import REPORT_DIR=/path/to/your/reports
Live report aggregation
To enable report aggregation in Puppet Dashboard, the file
lib/puppet/puppet_dashboard.rb must be available in Puppet's lib path. The easiest way to do this is to add
$libdir in your
RAILS_ROOT is the directory containing this README. Then ensure that your puppetmasterd runs with the option
puppet_dashboard report assumes that your Dashboard server is available at
localhost on port 3000 (as it would be if you started it via
script/server). For now, you will need to modify the constants in
puppet_dashboard.rb if this is not the case.
External Node Tool
Puppet Dashboard functions as an external node tool. All nodes make a puppet-compatible YAML specification available for export. See
bin/external_node for an example script that connects to Puppet Dashboard as an external node tool.
Rein Henrichs <firstname.lastname@example.org> Rick Bradley <email@example.com> Andrew Maier <firstname.lastname@example.org> Scott Smith <email@example.com> Ian Ward Comfort <firstname.lastname@example.org>