Skip to content
Kibana Puppet module by Elastic.
Ruby Puppet Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github github: add PR and issue templates Mar 3, 2017
data Add documentation for 6.3/OSS changes and purge remaining repo code Jun 11, 2018
lib No-op changes to satisfy default rubocop Mar 9, 2018
manifests Allow nested hashes in config parameter. Oct 17, 2018
spec Allow nested hashes in config parameter. Oct 17, 2018
templates/etc/kibana templates: remove puppet 3.x handling for to_yaml weirdness Nov 9, 2017
tests Initial commit Feb 24, 2017
types manifests: updated parameters, module header docs, and s/anchor/contain/ Nov 8, 2017
.fixtures.yml Revert apt in fixtures to 2.x Oct 1, 2018
.gitignore testing: implement basic snapshot testing Jul 19, 2017
.rspec Initial commit Feb 24, 2017
.rubocop.yml Bring linting/syntax checks in-line with puppet-elasticsearch Mar 9, 2018
.ruby-version Bring linting/syntax checks in-line with puppet-elasticsearch Mar 9, 2018
.travis.yml Update hiera yaml to version 5 Jan 14, 2019
.yardopts Initial commit Feb 24, 2017 Update hiera yaml to version 5 Jan 14, 2019 Initial commit Feb 24, 2017
CONTRIBUTORS Converted defined type to validate the config hash to a native function. Apr 12, 2017
Gemfile Pin beaker to maj version 3 for now Oct 2, 2018
Guardfile many style fixes and travis yml fix; appease rubocop gods Nov 2, 2017
LICENSE Updated LICENSE to full form Jun 8, 2017
Makefile Initial commit Feb 24, 2017
README.markdown Remove apt module reference in readme Oct 1, 2018


Kibana Puppet Module

Puppet Forge Endorsed Puppet Forge Version Puppet Forge Downloads Build Status

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with Kibana
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.
  7. Development - Guide for contributing to the module


This module manages Kibana for use with Elasticsearch.

Module Description

In addition to managing the Kibana system package and service, this module also exposes options to control the configuration file for Kibana. Kibana plugins are also supported via a native type and provider.

Dependencies are fairly standard (such as stdlib).


What Kibana affects

  • The kibana system package and service
  • /etc/kibana/kibana.yml
  • /usr/share/kibana/plugins/*

Setup Requirements

In addition to basic puppet settings (such as pluginsync), ensure that the required dependencies for the module are met (these are listed in metadata.json and listed in the Puppet Forge).

Beginning with kibana

Quick start:

class { 'kibana' : }


In order to control Kibana's configuration file, use the config parameter:

class { 'kibana':
  config => {
    'server.port' => '8080',

The kibana class also supports additional values for the ensure parameter that will be passed along to the package resource for Kibana. For example, to ensure the latest version of Kibana is always installed:

class { 'kibana': ensure => latest }

In order to explicitly ensure that version 5.2.0 of Kibana is installed:

class { 'kibana': ensure => '5.2.0' }

Package revisions are supported too:

class { 'kibana': ensure => '5.2.2-1' }

The kibana class also supports removal through use of ensure => absent:

class { 'kibana': ensure => absent }

OSS Packages and Repository Management

This module uses the elastic/elastic_stack module to manage the elastic package repositories. In order to control which major version of package repository to manage, declare the associated repository version in the elastic_stack::repo class. For example, to explicitly set the repository version to 5 instead of the default (which, at the time of this writing, is 6):

class { 'elastic_stack::repo':
  version => 5,

class { 'kibana':
  ensure => latest

This module defaults to the upstream package repositories, which as of 6.3, includes X-Pack. In order to use the purely OSS (open source) package and repository, the appropriate oss flag must be set on the elastic_stack::repo and kibana classes:

class { 'elastic_stack::repo':
  oss => true,

class { 'kibana':
  oss => true,


Kibana plugins can be managed by this module.

Kibana 5.x & 6.x

In the most basic form, official plugins (provided by Elastic) can simply be specified by name alone:

kibana_plugin { 'x-pack': }

The type also supports installing third-party plugins from a remote URL:

kibana_plugin { 'health_metric_vis':
  url => '',

When updating plugins, it is important to specify the version of the plugin that should be installed. For example, the preceding block of code installed version 0.3.4 of the health_metric_vis plugin. In order to update that plugin to version 0.3.5, you could use a resource such as the following:

kibana_plugin { 'health_metric_vis':
  url => '',
  version => '0.3.5',

Plugins can also be removed:

kibana_plugin { 'x-pack': ensure => absent }

Kibana 4.x

Plugin operations are similar to 6.x resources, but in keeping with the kibana command-line utility, an organization and version must be specified:

kibana_plugin { 'marvel':
  version => '2.4.4',
  organization => 'elasticsearch',

The version and organization parameters correspond to the same values for a given plugin in the plugin's documentation, and the provider assembles the correct name on the backend on your behalf. For instance, the previous example will be translated to

kibana plugin --install elasticsearch/marvel/2.4.4

For you. Removal through the use of ensure => absent is the same as for 5.x plugins.


Class parameters are available in the auto-generated documentation pages. Autogenerated documentation for types, providers, and ruby helpers is also available on the same documentation site.


This module is actively tested against the versions and distributions listed in metadata.json.


See with help to get started.


Install gem dependencies:

$ bundle install

Run the test suite (without acceptance tests):

$ bundle exec rake test

Run acceptance tests against a platform (requires Docker):

$ bundle exec rake beaker:centos-7-x64
You can’t perform that action at this time.