ansible-elasticsearch
by
elastic

Description: Ansible playbook for Elasticsearch

View on GitHub ↗

Summary Information

Updated 2 hours ago
Added to GitGenius on April 7th, 2021
Created on April 30th, 2015
Open Issues & Pull Requests: 13 (+0)
Number of forks: 856
Total Stargazers: 1,590 (+0)
Total Subscribers: 161 (+0)

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

The ansible-elasticsearch repository is an Ansible role for deploying and configuring Elasticsearch versions 6.x and 7.x across multiple Linux platforms. The role is now archived and no longer actively maintained, though users are welcome to continue using and adapting it for their own needs, including with Elasticsearch 8.x through documented support procedures.

The role supports deployment on Ubuntu 16.04, 18.04, and 20.04, Debian 8, 9, and 10, CentOS 7, and Amazon Linux 2. It is written primarily in Ruby and published on Ansible Galaxy as elastic.elasticsearch. The repository provides a comprehensive infrastructure-as-code solution for Elasticsearch cluster setup and configuration management, enabling automated deployment and role-based configuration across multiple hosts.

A key feature of the role is its flexible configuration system built around an es_config map parameter that serializes directly into the elasticsearch.yml file. This design allows the role to support all Elasticsearch configuration parameters without requiring updates when new parameters are introduced or deprecated. Users can configure critical cluster parameters including http.port, transport.port, discovery.seed_hosts, cluster.initial_master_nodes, and network.host settings. The role provides sensible defaults but requires users to explicitly specify network binding and discovery settings appropriate to their deployment topology.

The role includes customizable configuration file templates for environment variables, JVM options, and logging properties. Users can override default templates by specifying custom Jinja2 templates through Ansible variables like es_config_default, es_config_jvm, and es_config_log4j2. This extensibility allows organizations to maintain their own configuration standards while leveraging the role's installation and cluster management capabilities.

The repository's testing infrastructure uses Kitchen with Ruby and Bundler for comprehensive CI and local testing across supported platforms. Testing suites include basic installations, X-Pack feature validation, and upgrade scenarios. The role uses Ansible tags to organize tasks, allowing users to selectively apply specific installation or configuration steps.

Several breaking changes are documented in the repository history. Multi-instance support was removed in version 7.1.1, with the role now recommending Docker containers for deployments requiring multiple Elasticsearch instances on the same host. Version 7.5.2 removed customizable MAX_THREAD settings and updated configuration file templates to align with Elasticsearch 6.x and 7.x standards, removing deprecated options. Starting with Elasticsearch 7.11.0, the role no longer supports OSS distributions due to Elasticsearch's licensing changes.

The role requires jmespath on the local machine to support Ansible's json_query filter. It communicates with deployed nodes via HTTP using configurable es_api_host and es_api_port parameters, defaulting to localhost and port 9200, for operations like template installation and node health verification. The documentation emphasizes that these API connection parameters must be adjusted if nodes bind to different hosts or ports than the defaults.

ansible-elasticsearch
by
elasticelastic/ansible-elasticsearch

Repository Details

Fetching additional details & charts...