Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/haf/puppet-elasticsearch
A puppet-elasticsearch module that has an edge over github.com/elasticsearch/puppet-elasticsearch.
https://github.com/haf/puppet-elasticsearch
Last synced: about 1 month ago
JSON representation
A puppet-elasticsearch module that has an edge over github.com/elasticsearch/puppet-elasticsearch.
- Host: GitHub
- URL: https://github.com/haf/puppet-elasticsearch
- Owner: haf
- License: other
- Created: 2013-12-12T11:55:32.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2013-12-12T11:55:38.000Z (about 11 years ago)
- Last Synced: 2024-10-19T21:17:29.649Z (2 months ago)
- Language: Puppet
- Size: 211 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# puppet-elasticsearch
A puppet module for managing elasticsearch nodes
http://www.elasticsearch.org/
[![Build Status](https://travis-ci.org/elasticsearch/puppet-elasticsearch.png?branch=master)](https://travis-ci.org/elasticsearch/puppet-elasticsearch)
## Usage
Installation, make sure service is running and will be started at boot time:
class { 'elasticsearch': }
Install a certain version:
class { 'elasticsearch':
version => '0.90.3'
}
This assumes an elasticsearch package is already available to your distribution's package manager. To use a local deb or rpm, specify it like so:class { 'elasticsearch':
pkg_source => 'puppet:///path_to_file'
}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'
}
}
}## Defaults file
You can populate the defaults file ( /etc/defaults/elasticsearch or /etc/sysconfig/elasticsearch )
class { 'elasticsearch':
service_settings => { 'ES_USER' => 'elasticsearch', 'ES_GROUP' => 'elasticsearch' }
}## 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
}## Bindings / clients
Install [a variety of python bindings](http://www.elasticsearch.org/guide/clients/):
elasticsearch::python { "rawes": }
## Plugins
Install [a variety of plugins](http://www.elasticsearch.org/guide/clients/):
### From official repository:
elasticsearch::plugin{'mobz/elasticsearch-head':
module_dir => 'head'
}### From custom url:
elasticsearch::plugin{ 'elasticsearch-jetty':
module_dir => 'elasticsearch-jetty',
url => 'https://oss-es-plugins.s3.amazonaws.com/elasticsearch-jetty/elasticsearch-jetty-0.90.0.zip'
}