Elasticsearch HA (Docker cluster)
OSSProduction Elasticsearch cluster across N nodes running the official Elasticsearch Docker image. Each node runs one container managed by a dedicated systemd unit; cluster formation via discovery.seed_hosts and cluster.initial_master_nodes. Ships with a per-node HTTP health dashboard (green/yellow/red + shard summary).
by opensible ✓· ⬇ 0 installs· Databases· v1.0.0· template
elasticsearch-clusterUse in the OpenSible console
Open Infrastructure → Stack Hub Blueprints, switch the source to Cloud hub, then pick Elasticsearch HA (Docker cluster) and press Use.
Requirements
ansible >=2.14
Default variables
defaults.json
{
"nodes": [
{
"ip": "",
"name": "es-1",
"ssh_port": "",
"ssh_user": ""
},
{
"ip": "",
"name": "es-2",
"ssh_port": "",
"ssh_user": ""
},
{
"ip": "",
"name": "es-3",
"ssh_port": "",
"ssh_user": ""
}
],
"become": true,
"data_dir": "/var/lib/elasticsearch-data",
"heap_size": "1g",
"http_port": 9200,
"cluster_id": "opensible-es",
"es_version": "8.15.3",
"announce_host": "{{ ansible_host | default(inventory_hostname) }}",
"open_firewall": true,
"transport_port": 9300,
"elastic_password": "",
"health_http_port": 9280,
"security_enabled": false,
"ssh_port_default": 22,
"ssh_user_default": "root",
"health_http_enabled": true
}vars.example.yml
vars.example.yml
---
# Example variable overrides for the elasticsearch-cluster blueprint.
# Copy into your project and adjust before running the playbook.
cluster_id: opensible-es
es_version: "8.15.3"
# Networking
http_port: 9200
transport_port: 9300
announce_host: "{{ ansible_host | default(inventory_hostname) }}"
# Per-node HTTP health dashboard (HTML + /health.json + /live).
health_http_enabled: true
health_http_port: 9280
# X-Pack basic security. Turn on for anything reachable outside a
# trusted network; provide a strong password (ideally via ansible-vault).
security_enabled: false
elastic_password: ""
# JVM + storage
heap_size: 1g # -Xms/-Xmx; 50% of RAM, cap 31g
data_dir: /var/lib/elasticsearch-data
# Cluster members. First entry seeds the initial master set.
nodes:
- { name: es-1, ip: 10.0.0.11, ssh_user: root, ssh_port: 22 }
- { name: es-2, ip: 10.0.0.12, ssh_user: root, ssh_port: 22 }
- { name: es-3, ip: 10.0.0.13, ssh_user: root, ssh_port: 22 }
open_firewall: true
become: true
Versions (1)
v1.0.0playbook.yml
