• Stars
    star
    413
  • Rank 104,801 (Top 3 %)
  • Language
    TypeScript
  • License
    Other
  • Created over 10 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Puppet web interface written in CoffeeScript using AngularJS

Puppet Explorer - Never sailed straighter

Overview

Puppet Explorer is a web application for PuppetDB that lets you explore your Puppet data. It is made using AngularJS and runs entirely on the client side, so the only backend that is needed is PuppetDB itself and a web server to share the static resources.

It has the same query language as the popular Puppet module dalen-puppetdbquery. This lets you easily filter for a selection of nodes and show the events or facts for only them. So you can handle hosts as groups without needing to have predefined groups, just make them up as you need and click on the pie charts to drill down further. The JavaScript version of this query parser is available as a separate component so you can use it in your own projects easily, node-puppetdbquery.

All views in the application are made to be able to link directly to them, so it is easy to share information you find with coworkers.

It has support for multiple PuppetDB servers.

Screenshots

The dashboard:

The dashboard

Node search:

Node search

Events view and filtering:

Events view

Facts view:

Facts view

Demo

Try it out live with some made up AWS data at demo.puppetexplorer.io

Installation

The recommended way to install it is on the same host as your PuppetDB instance. Then proxy /api to port 8080 of your PuppetDB instance (except the /commands endpoint). This avoids the need for any CORS headers.

It is possible to have it on a separate domain from your PuppetDB though. If you do, make sure you have the correct Access-Control-Allow-Origin header and a Access-Control-Expose-Headers: X-Records header.

You need to copy config.js.example to config.js and modify it for your needs.

To simplify installation you can use the spotify-puppetexplorer Puppet module.

Dependencies

It is using the V4 PuppetDB API from PuppetDB 3.2. Version 1.5.0 works with PuppetDB 2.3.x, but the current version only works with PuppetDB 3.x.

Versions of Puppet prior to 4.0, converted Facter's facts to string, limiting the puppetexplorer's ability to compare them. The stringifyfacts Puppet parameter permits to disable this old behaviour. Please note that Facter 2.3.0 or newer is required for this setting to take effect.

Development and local testing

Install all required dependencies using npm install and the grunt cli tool globally using npm install -g grunt-cli. Then you can build the application using grunt. The results will be located in the dist directory.

Use grunt serve to start a local web server pointing to the demo site PuppetDB instance.

Optionally you can use the --puppetdb=url option to specify a URL to proxy PuppetDB connections to. Another way is to create a SSH tunnel to your PuppetDB server, ssh -L 8080:localhost:8080 puppetdb.example.com and grunt serve --puppetdb=http://localhost:8080/.

With grunt dev it will start a development server rebuild any source files that changes and put the results in the dist directory.

To build a Debian package use grunt build_debian, this requires the devscripts and debhelper packages to be installed.

To build a RPM use grunt build rpm:snapshot, this requires the rpm-build package to be installed. The resulting RPM will be in rpm/RPMS/noarch.

See also

More Repositories

1

puppet-puppetdbquery

Query functions for PuppetDB
Ruby
198
star
2

simple-puppet-forge

Simple Puppet Forge implementation
Ruby
37
star
3

puppet-puppetexplorer

Puppet module for installing Puppet Explorer
Puppet
29
star
4

puppetls

Puppet face to list file resources
Ruby
14
star
5

ecs-run

Run a task on AWS ECS and stream output
Rust
13
star
6

hieralookup

A web service for doing hiera lookups
Ruby
12
star
7

RoRBuilder

TypeScript
10
star
8

puppet-trycatch

Ruby
8
star
9

node-puppetdbquery

a simple query language parser for PuppetDB
JavaScript
8
star
10

ssh-auth-github

OpenSSH AuthorizedKeysCommand to fetch keys from GitHub
Rust
7
star
11

puppetdb-muninplugins

Munin plugins for PuppetDB (This is unmaintained at the moment, mail me if you want to take over)
Ruby
3
star
12

puppet-hiera-node

Hiera node terminus for Puppet
Ruby
3
star
13

ide-puppet

Atom IDE plugin for Puppet
Ruby
3
star
14

dm-puppetdb-adapter

PuppetDB adapter for DataMapper
Ruby
3
star
15

killboard

Return of Reckoning Kill Board UI
TypeScript
2
star
16

spikor

Spikor is a node terminus for Puppet that contructs a dynamic node specific environment and is made for a workflow where git each branch corresponds to a Puppet environment.
Ruby
2
star
17

puppet-defn

Puppet function to define Puppet functions in Puppet
Ruby
2
star
18

xedit-scripts

Scripts for xEdit (skyrim modding tool)
Pascal
2
star
19

slack-puppetdbquery

PuppetDB query command for Slack
CoffeeScript
2
star
20

hiera-yamlerb

A YAML backend with ERB templating for Hiera. (Unmaintained, feel free to take over)
Ruby
1
star
21

puppet-apt_auto_pin

Automatically add apt pin files for packages with a version specified
Ruby
1
star
22

puppet-cruft

Find resources managed by puppet in the past but not anymore
Ruby
1
star
23

puppet-preseed_package

preseed_package module for puppet
Puppet
1
star