The Story of Dashboard 2.0 A a r o n S t o n e – @ s o d a b r e w B r i g h t R o l l – o n l i n e v i d e o a d v e r t i s i n g PuppetConf – August 23, 2013
Jun 22, 2015
The Story of Dashboard 2.0
Aaron Stone – @sodabrew
BrightRoll – online video advertising
PuppetConf – August 23, 2013
Agenda
● An introductory digression on open source● What's new in Dashboard 2.0?● Wait, what's Dashboard again?● Should you install this in the first place?● What's the upgrade path for now?● Roadmap going forward
Get Involved inOpen Source Projects
● Be kind.● Be helpful.● Code is key.
– Don't demand that someone else write code to solve your use case.● Be appreciative.
– If someone else is inspired by your bug/request and writes the code, thank them publicly!
● Accept critique gracefully.– Sometimes this means adjusting or even rewriting your code submission.– Especially on GitHub, you may be asked to rebase your work several times!
● Be direct and factual.– “I disagree with X, because of Y. Facts Q and R suggest that X is not the best
approach. I suggest Z as an alternative.”
What's New in Dashboard 2.0
● Updated to Rails 3.2 along with many gem updates– Up to date will_paginate, inherited_resources, etc.– Uses Bundler to manage gem dependencies
● Runs on both Ruby 1.8.7 and 1.9.3● Improved REST API access● Bug fixes and UI tweaks● Ongoing maintenance outside of Puppet Labs
Wait, What's Dashboard Again?
● Puppet Dashboard is a web application that provides both External Node Classification and Report Processing.
● It is a component of Puppet Enterprise.● Looks like this...
Slide with Dashboard Screenshot
What's an External Node Classifier?
● An ENC is a script that is executed early in the Catalog generation process.
● The first argument is the hostname of the machine to be configured.
● The output is a YAML document with a set of key-value variables and a list of manifest classes to include in the host's catalog.– The variables are accessible as top-level variables in your
manifests, e.g. $::thing_from_the_enc– The classes can be parameterized from the ENC.
Dashboard as ENC
● Introduces an entirely new concept of Groups.● Hosts are members of groups.● Groups assign variables and classes.● Groups can be linked for inheritance and
override of variables and classes.
Dashboard for Reports
● Great way to view repots, show general health of your Puppet usage, drill down into problems.
● Also the Achilles' heel of Dashboard.● The SQL reports schema is really not good.● Two keys to making it work:
– innodb_file_per_table– Frequent pruning of old reports
Should you install Dashboard today?
● Well, maybe.
● Yep that's all.
Upgrading Dashboard 1.2 to 2.0
● Actually not painful!● Get your favorite Ruby and the Bundler gem
git clone [email protected]:sodabrew/puppet-dashboard
cd puppet-dashboard
bundle install --path vendor/bundle
[copy over your confg and database yaml]
bundle exec rake db:migrate
bundle exec rails server
[should work!]
What's Replacing Dashboard?
● Node Classification is moving towards Hiera– At the moment I don't see a good point of
integration with Hiera – use one or the other.● Report processing is moving to PuppetDB
– PuppetDB provides an API for retrieving reports, going forward Dashboard will use this API.
What's next for Dashboard?
● Begin using PuppetDB as a backend for reports.
● Continue tracking Rails security releases.● Aim for Ruby 2.0 support.● Migration tools
– Because you might want to ditch dashboard, and that should be less painful.
● More features! Pull requests welcome!
Thanks!
Aaron Stone – @sodabrew
BrightRoll – online video advertising
PuppetConf – August 23, 2013