The Puppet Dashboard is a web interface providing node classification and reporting features for Puppet, an open source system configuration management tool
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
acceptance/tests Remove selenium acceptance tests Feb 22, 2014
app fix report parsing with disable_report_unchanged_events Sep 5, 2018
bin cleanup old script folder May 25, 2018
config Merge pull request #355 from bwitt/remove-sqlite Aug 28, 2018
db Add support for report format 9 Aug 22, 2018
docs/manual Deprecated docs cleanup Oct 31, 2018
ext dont remove the database.yml.example and settings.yml.example files (#… Aug 24, 2018
lib Change call method to list mysql tables in optimize task Sep 11, 2018
log Add some gitkeeps. Mar 7, 2013
public Delete rails.png Feb 19, 2014
spec Add test for the disable_report_unchanged_events setting Sep 5, 2018
spool (#7938) Delayed import from file, not YAML string. Jun 17, 2011
tmp (#8745) Update gitignore to not exlucde tmp during tarball creation Aug 3, 2011
.gitignore Add simplecov for coverage reporting May 4, 2018
.haml-lint.yml Add haml-lint and generated todo list Aug 27, 2018
.haml-lint_todo.yml Add haml-lint and generated todo list Aug 27, 2018
.rubocop.yml Add rubocop and generated todo list Aug 27, 2018
.rubocop_todo.yml Add rubocop and generated todo list Aug 27, 2018
.travis.yml Codeclimate integration Sep 6, 2018
CONTRIBUTING.md fix the CLA link Mar 25, 2013
CONTRIBUTORS.md Update README and CONTRIBUTORS Sep 11, 2018
Gemfile Add haml-lint and generated todo list Aug 27, 2018
Gemfile.lock Bump loofah 2.2.3 due to recent security vulnerability Nov 15, 2018
LICENSE (#7568) Relicense to Apache-2.0 License Jul 15, 2011
PLUGINS.md Added some documentation on writing plugins. Dec 20, 2011
README.markdown Make Puppet Dashboard manual accessible Oct 31, 2018
Rakefile Make rubocop and haml_lint tasks optional Oct 30, 2018
VERSION change version to match latets beta release. (#310) Aug 22, 2018
config.ru update config.ru May 4, 2018

README.markdown

Puppet Dashboard

Puppet Dashboard is a web interface for Puppet. It can view and analyze Puppet reports, assign Puppet classes and parameters to nodes, and view inventory data and backed-up file contents.

Build Status Maintainability Test Coverage

Dependencies

  • Ruby 2.3, 2.4, 2.5
  • MySQL/MariaDB >= 5.5 or PostgreSQL >= 9.2

Puppet Report Format Support

Puppet Format Documentation

Format Version Puppet Version Dashboard Version
0 0.25.x >= 1.0.0
1 2.6.0 - 2.6.4 >= 1.0.0
2 2.6.5 - 2.7.11 >= 1.0.0
3 2.7.13 - 3.2.4 >= 1.0.0
4 3.3.0 - 4.3.2 >= 2.0.0
5 4.4.0 - 4.5.3 >= 3.0.0
6 4.6.0 - 4.10.x >= 3.0.0
7 5.0.0 - 5.3.x >= 3.0.0
8 5.4.0 - 5.4.x >= 3.0.0
9 5.5.0 - 5.5.x >= 3.0.0

Future Puppet Report formats may work automatically if no required fields are removed. If there is a new Format available which is not yet supported please let us know by creating a new issue.

Fast Install

  • Install prerequisites:
apt-get install git libmysqlclient-dev libpq-dev libsqlite3-dev ruby-dev libxml2-dev libxslt-dev nodejs
  • Check out the code:
cd /usr/share && \
git clone https://github.com/sodabrew/puppet-dashboard.git && \
cd puppet-dashboard
  • Create a MySQL database and user
mysql -p -e"CREATE DATABASE dashboard_production CHARACTER SET utf8;" && \
mysql -p -e"CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'my_password';" && \
mysql -p -e"GRANT ALL PRIVILEGES ON dashboard_production.* TO 'dashboard'@'localhost';"
  • Set max_allowed_packet = 32M in your MySQL configuration
vim /etc/mysql/my.cnf
  • Edit your config/settings.yml and config/database.yml files.
cp config/settings.yml.example config/settings.yml && \
cp config/database.yml.example config/database.yml && \
vim config/database.yml
  • Install Puppet Dashboard Dependencies
gem install bundler && \
bundle install --deployment
  • You need to create a secret for production and either set it via environment variable: export SECRET_KEY_BASE=$(bundle exec rails secret) or follow the instructions in config/secrets.yml to setup an encrypted secret.
  • Setup database and pre-compile assets
RAILS_ENV=production bundle exec rake db:setup && \
RAILS_ENV=production bundle exec rake assets:precompile
  • Start Puppet Dashboard manually
RAILS_ENV=production bundle exec rails server
  • Set up Puppet to be Dashboard-aware.
  • Start the delayed job worker processes.
  • You will find an initscript and other useful files for Debian in ext/debian

Production Environment

Dashboard is currently configured to serve static assets when RAILS_ENV=production. In high-traffic environments, you may wish to farm this out to Apache or nginx. Additionally, you must explicitly precompile assets for production using:

  • SECRET_KEY_BASE=none RAILS_ENV=production bundle exec rails assets:precompile

Dashboard will keep all reports in the database. If your infrastructure is big the database will eventually become very large (more than 50GB). To periodically purge old reports (~ once per day) and optimize the database tables (~ once per month) it is recommended to run the following tasks periodically:

  • SECRET_KEY_BASE=none RAILS_ENV=production bundle exec rails reports:prune upto=20 unit=day
  • SECRET_KEY_BASE=none RAILS_ENV=production bundle exec rails db:raw:optimize

Puppet Dashboard Manual

The Puppet Dashboard manual is an extracted version of the Puppet Dashboard documentation which was hosted on the Puppetlabs homepage.

Contributing

To contribute to this project, please read CONTRIBUTING. A list of contributors is found in CONTRIBUTORS. Thanks! This project uses the Silk icons by Mark James. Thank you!