Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
ElasticSearch Puppet module

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
manifests
spec
templates/etc/elasticsearch
.fixtures.yml
.gemfile
.gitignore
.travis.yml
CHANGELOG
CONTRIBUTORS
Modulefile
README.md
Rakefile

README.md

puppet-elasticsearch

A puppet module for managing elasticsearch nodes

http://www.elasticsearch.org/

Build Status

Usage

Installation, make sure service is running and will be started at boot time:

 class { 'elasticsearch': }

Removal/decommissioning:

 class { 'elasticsearch':
   ensure => 'absent',
 }

Install everything but disable service(s) afterwards:

 class { 'elasticsearch':
   status => 'disabled',
 }

Disable automated restart of Elasticsearch on config file change:

 class { 'elasticsearch':
   restart_on_change => false
 }

For the config variable a hash needs to be passed:

 class { 'elasticsearch':
   config                   => {
     'node'                 => {
       'name'               => 'elasticsearch001'
     },
     'index'                => {
       'number_of_replicas' => '0',
       'number_of_shards'   => '5'
     },
     'network'              => {
       'host'               => $::ipaddress
     }
   }
 }

Short write up of the config hash is also possible.

Instead of writing the full hash representation:

 class { 'elasticsearch':
   config                 => {
     'cluster'            => {
       'name'             => 'ClusterName',
       'routing'          => {
         'allocation'     => {
           'awareness'    => {
             'attributes' => 'rack'
           }
         }
       }
     }
   }
 }

You can write the dotted key naming:

 class { 'elasticsearch':
   config => {
     'cluster' => {
       'name' => 'ClusterName',
       'routing.allocation.awareness.attributes' => 'rack'
     }
   }
 }

Manage templates

Add a new template

 elasticsearch::template { 'templatename':
   file => 'puppet:///path/to/template.json'
 }

Delete a template

 elasticsearch::template { 'templatename':
   delete => true
 }

Replace a template

 elasticsearch::template { 'templatename':
   file    => 'puppet:///path/to/template.json',
   replace => true
 }

Host

Default it uses localhost:9200 as host. you can change this with the 'host' and 'port' variables

 elasticsearch::template { 'templatename':
   host => $::ipaddress,
   port => 9200
 }
Something went wrong with that request. Please try again.