+ All Categories
Home > Technology > The Story of Dashboard 2.0 - PuppetConf 2013

The Story of Dashboard 2.0 - PuppetConf 2013

Date post: 22-Jun-2015
Category:
Upload: puppet-labs
View: 3,883 times
Download: 2 times
Share this document with a friend
Description:
Dashboard is a popular tool for web-based management of Puppet Nodes. In late 2012, Puppet Labs proposed passing Dashboard on to a community maintainer, and I volunteered. This session will cover two major topics: how to get involved with Puppet projects on an open source basis, and about what's new in Dashboard 2.0. Learn how you can use Dashboard, how to integrate it as an External Node Classifier, and some common pitfalls. Find out what's next for the Dashboard as PuppetDB and Hiera mature. Aaron Stone Senior Software Engineer, BrightRoll Aaron Stone is a software engineer at BrightRoll, where he works on both product and infrastructure development. Aaron recently lead the work on Puppet Dashboard 2.0, bringing it up to date with Ruby on Rails 3. Aaron's roots in open source software and polyglot coding skills inform his passion for digging into the full stack of software, hardware, and gear that mediate between his code and his users.
Popular Tags:
14
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
Transcript
Page 1: The Story of Dashboard 2.0 - PuppetConf 2013

The Story of Dashboard 2.0

Aaron Stone – @sodabrew

BrightRoll – online video advertising

PuppetConf – August 23, 2013

Page 2: The Story of Dashboard 2.0 - PuppetConf 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

Page 3: The Story of Dashboard 2.0 - PuppetConf 2013

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.”

Page 4: The Story of Dashboard 2.0 - PuppetConf 2013

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

Page 5: The Story of Dashboard 2.0 - PuppetConf 2013

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...

Page 6: The Story of Dashboard 2.0 - PuppetConf 2013

Slide with Dashboard Screenshot

Page 7: The Story of Dashboard 2.0 - PuppetConf 2013

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.

Page 8: The Story of Dashboard 2.0 - PuppetConf 2013

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.

Page 9: The Story of Dashboard 2.0 - PuppetConf 2013

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

Page 10: The Story of Dashboard 2.0 - PuppetConf 2013

Should you install Dashboard today?

● Well, maybe.

● Yep that's all.

Page 11: The Story of Dashboard 2.0 - PuppetConf 2013

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!]

Page 12: The Story of Dashboard 2.0 - PuppetConf 2013

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.

Page 13: The Story of Dashboard 2.0 - PuppetConf 2013

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!

Page 14: The Story of Dashboard 2.0 - PuppetConf 2013

Thanks!

Aaron Stone – @sodabrew

BrightRoll – online video advertising

PuppetConf – August 23, 2013


Recommended