diff --git a/elasticsearch/README.md b/elasticsearch/README.md index 8db3e31a..5088868a 100644 --- a/elasticsearch/README.md +++ b/elasticsearch/README.md @@ -15,6 +15,8 @@ Tasks are extracted in several files, included in `tasks/main.yml` : ## Available variables * `elasticsearch_cluster_name`: cluster name ; +* `elasticsearch_cluster_members:` members of a cluster (ex: ["10.0.0.1", "10.0.0.2", "10.0.0.3"]) (default: `Null`) ; +* `elasticsearch_minimum_master_nodes:` minimum of master nodes (the best practice is to have "number of elasticsearch_cluster_members / 2 + 1" as value) (default: `Null`) ; * `elasticsearch_node_name`: node name, defaults to hostname ; * `elasticsearch_network_host`: which interfaces to bind to ; * `elasticsearch_network_publish_host`: which interface to publish for node-to-node communication (default: `Null`) ; diff --git a/elasticsearch/defaults/main.yml b/elasticsearch/defaults/main.yml index 3d549462..52fc8856 100644 --- a/elasticsearch/defaults/main.yml +++ b/elasticsearch/defaults/main.yml @@ -2,6 +2,8 @@ elastic_stack_version: "6.x" elasticsearch_cluster_name: Null +elasticsearch_cluster_members: Null +elasticsearch_minimum_master_nodes: Null elasticsearch_node_name: "${HOSTNAME}" elasticsearch_network_host: "[_site_, _local_]" elasticsearch_network_publish_host: Null diff --git a/elasticsearch/tasks/configuration.yml b/elasticsearch/tasks/configuration.yml index 9ea00955..75e1c742 100644 --- a/elasticsearch/tasks/configuration.yml +++ b/elasticsearch/tasks/configuration.yml @@ -73,3 +73,25 @@ line: "-Xmx{{ elasticsearch_jvm_xmx }}" tags: - config + +- name: Configure cluster members + lineinfile: + dest: /etc/elasticsearch/elasticsearch.yml + line: "discovery.zen.ping.unicast.hosts:{{ elasticsearch_cluster_members }}" + regexp: "^discovery.zen.ping.unicast.hosts:" + insertafter: "^#discovery.zen.ping.unicast.hosts" + when: elasticsearch_cluster_members|default("", True) + tags: + - config + +- name: Configure minimum master nodes + lineinfile: + dest: /etc/elasticsearch/elasticsearch.yml + line: "discovery.zen.minimum_master_nodes:{{ elasticsearch_minimum_master_nodes }}" + regexp: "^discovery.zen.ping.unicast.hosts:" + insertafter: "^#discovery.zen.minimum_master_nodes" + when: elasticsearch_minimum_master_nodes|default("", True) + tags: + - config + +