Giter Site home page Giter Site logo

mediapeers / ansible-role-elasticsearch Goto Github PK

View Code? Open in Web Editor NEW

This project forked from traackr/ansible-elasticsearch

1.0 8.0 1.0 145 KB

Ansible Role - Installs and configures Elasticsearch 2.x - 5.x

Shell 13.05% Ruby 86.95%
elasticsearch ansible-role aws ubuntu server ansible nosql

ansible-role-elasticsearch's Introduction

Build Status

Ansible Role for Elasticsearch

This is an Ansible role for Elasticsearch.

Note: Only supports Elasticsearch 2.0 and newer.

Features

  • Support for installing plugins
  • Support for installing and configuring EC2/S3 plugin
  • Support for installing custom JARs in the Elasticsearch classpath (e.g. custom Lucene Similarity JAR)

Enabling Added Features

Configuring AWS EC2 / S3 plugin

The following variables need to be defined in your playbook or inventory:

  • elasticsearch_aws_discovery: true For just installing the s3 plugin in ES >= 5.x, for snapshot repo use:
  • elasticsearch_aws_s3: true

The following variables provide a for now limited configuration for the plugin. More options may be available in the future

  • elasticsearch_plugin_aws_ec2_groups
  • elasticsearch_plugin_aws_ec2_ping_timeout
  • elasticsearch_plugin_aws_access_key
  • elasticsearch_plugin_aws_secret_key
  • elasticsearch_plugin_aws_region

Installing plugins

You will need to define an array called elasticsearch_plugins in your playbook or inventory, such that:

elasticsearch_plugins:
 - { name: '<plugin name>', url: '<[optional] plugin url>' }
 - ...

where if you were to install the plugin via bin/plugin, you would type: bin/plugin -install <plugin name> or bin/plugin -install <plugin name> -url <plugin url>

Example for https://github.com/elasticsearch/elasticsearch-mapper-attachments (bin/plugin install elasticsearch/elasticsearch-mapper-attachments/1.9.0):

elasticsearch_plugins:
 - { name: 'elasticsearch/elasticsearch-mapper-attachments/1.9.0' }

Example for https://github.com/imotov/elasticsearch-facet-script (bin/plugin install http://dl.bintray.com/content/imotov/elasticsearch-plugins/elasticsearch-facet-script-1.1.2.zip):

elasticsearch_plugins:
 - { name: 'facet-script', url: 'http://dl.bintray.com/content/imotov/elasticsearch-plugins/elasticsearch-facet-script-1.1.2.zip' }

Installing Custom JARs

Custom jars are made available to the Elasticsearch classpath by being downloaded into the elasticsearch_home_dir/lib folder. An example of a custom jar can include a custom Lucene Similarity Provider. You will need to define an array called elasticsearch_custom_jars in your playbook or inventory, such that:

elasticsearch_custom_jars:
 - { uri: '<URL where JAR can be downloaded from: required>', filename: '<alternative name for final JAR if different from file downladed: leave blank to use same filename>', user: '<BASIC auth username: leave blank of not needed>', passwd: '<BASIC auth password: leave blank of not needed>' }
 - ...

Configuring Thread Pools

Elasticsearch thread pools can be configured using the elasticsearch_thread_pools list variable:

elasticsearch_thread_pools:
  - "threadpool.bulk.type: fixed"
  - "threadpool.bulk.size: 50"
  - "threadpool.bulk.queue_size: 1000"

Disable Java installation

If you prefer to skip the built-in installation of the Oracle JRE, use the elasticsearch_install_java flag:

elasticsearch_install_java: false

Include role in a larger playbook

Add this role as a git submodule

Checkout this project as a submodule under roles/:

$ git submodule add [email protected]:mediapeers/ansible-role-elasticsearch.git roles/mediapeers.elasticsearch

Include this role in your playbook

Example playbook, with minimal set of variables defined:

---
- name: My Playbook for Elasticsearch hosts
  hosts: all_es_nodes
  become: true
  vars:
    elasticsearch_version: 2.4
    elasticsearch_heap_size: 2g
  elasticsearch_cluster_name: my-personal-es-cluster
  roles:
    - mediapeers.elasticsearch
  tasks:
   # Your tasks

Dependencies

No other Ansible roles.

License

MIT

Author Information

Stefan Horning [email protected]

Based on the works of George Stathis - gstathis [at] traackr.com

ansible-role-elasticsearch's People

Contributors

ajaegle avatar awislowski avatar gpstathis avatar henrik-m avatar lemig avatar mikemccabe avatar realcnbs avatar smiller171 avatar stefanhorning avatar stwind avatar tedder avatar wjlroe avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

npm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.