Page MenuHomeSoftware Heritage

README.md
No OneTemporary

README.md

# 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)
## Requirements
* Puppet 2.7.x or better.
* The [stdlib](https://forge.puppetlabs.com/puppetlabs/stdlib) Puppet library.
Optional:
* The [apt](http://forge.puppetlabs.com/puppetlabs/apt) Puppet library when using repo management on Debian/Ubuntu.
## Usage examples
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 install it in a different way:
To download from http/https/ftp source:
class { 'elasticsearch':
package_url => 'https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.7.deb'
}
To download from a puppet:// source:
class { 'elasticsearch':
package_url => 'puppet:///path/to/elasticsearch-0.90.7.deb'
}
Or use a local file source:
class { 'elasticsearch':
package_url => 'file:/path/to/elasticsearch-0.90.7.deb'
}
Automatic upgrade of the software ( default set to false ):
class { 'elasticsearch':
autoupgrade => true
}
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
This will install and/or replace the template in Elasticsearch
elasticsearch::template { 'templatename':
file => 'puppet:///path/to/template.json'
}
### Delete a template
elasticsearch::template { 'templatename':
ensure => 'absent'
}
### 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 [clients/bindings](http://www.elasticsearch.org/guide/clients/):
### Python
elasticsearch::python { 'rawes': }
### Ruby
elasticsearch::ruby { 'elasticsearch': }
## Plugins
Install [a variety of plugins](http://www.elasticsearch.org/guide/plugins/):
### From official repository:
elasticsearch::plugin{'mobz/elasticsearch-head':
module_dir => 'head'
}
### From custom url:
elasticsearch::plugin{ 'elasticsearch-jetty':
module_dir => 'jetty',
url => 'https://oss-es-plugins.s3.amazonaws.com/elasticsearch-jetty/elasticsearch-jetty-0.90.0.zip'
}
## Java Install
Most sites will manage Java separately; however, this module can attempt to install Java as well.
class { 'elasticsearch':
java_install => true
}
Specify a particular Java package (version) to be installed:
class { 'elasticsearch':
java_install => true,
java_package => 'packagename'
}
## Repository management
Most sites will manage repositories separately; however, this module can manage the repository for you.
class { 'elasticsearch':
manage_repo => true,
repo_version => '1.0',
}
Note: When using this on Debian/Ubuntu, you will need to add the [Puppetlabs/apt](http://forge.puppetlabs.com/puppetlabs/apt) module to your modules.
## Service Management
Currently only the basic SysV-style [init](https://en.wikipedia.org/wiki/Init) service provider is supported, but other systems could be implemented as necessary (pull requests welcome).
### init
#### Defaults File
The *defaults* file (`/etc/defaults/elasticsearch` or `/etc/sysconfig/elasticsearch`) for the Logstash service can be populated as necessary. This can either be a static file resource or a simple key value-style [hash](http://docs.puppetlabs.com/puppet/latest/reference/lang_datatypes.html#hashes) object, the latter being particularly well-suited to pulling out of a data source such as Hiera.
##### file source
class { 'elasticsearch':
init_defaults_file => 'puppet:///path/to/defaults'
}
##### hash representation
$config_hash = {
'ES_USER' => 'elasticsearch',
'ES_GROUP' => 'elasticsearch',
}
class { 'elasticsearch':
init_defaults => $config_hash
}
## Support
Need help? Join us in [#elasticsearch](https://webchat.freenode.net?channels=%23elasticsearch) on Freenode IRC or subscribe to the [elasticsearch@googlegroups.com](https://groups.google.com/forum/#!forum/elasticsearch) mailing list.

File Metadata

Mime Type
text/plain
Expires
Mon, Aug 18, 11:53 PM (1 w, 3 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3280090

Event Timeline