{%- from "elasticsearch/map.jinja" import server with context %}
{%- if server.enabled %}
+{%- if server.curator is defined %}
include:
- - java
- {%- if server.curator is defined %}
- elasticsearch.server.curator
- {%- endif %}
+{%- endif %}
+
+elasticsearch_dependency_packages:
+ pkg.installed:
+ - names: {{ server.dependency_pkgs }}
elasticsearch_packages:
pkg.installed:
- names: {{ server.pkgs }}
+ - require:
+ - pkg: elasticsearch_dependency_packages
+
+elasticsearch_group:
+ group.present:
+ - name: elasticsearch
+ - require:
+ - pkg: elasticsearch_packages
+
+elasticsearch_user:
+ user.present:
+ - name: elasticsearch
+ - home: /home/elasticsearch
+ - shell: /bin/false
+ - groups:
+ - elasticsearch
+ - require:
+ - group: elasticsearch_group
elasticsearch_default:
file.managed:
- name: /etc/default/elasticsearch
- - source: salt://elasticsearch/files/elasticsearch
+ - source: salt://elasticsearch/files/v{{ server.version }}/elasticsearch
+ - group: elasticsearch
- template: jinja
- require:
- pkg: elasticsearch_packages
+ - user: elasticsearch_user
elasticsearch_config:
file.managed:
- name: /etc/elasticsearch/elasticsearch.yml
- - source: salt://elasticsearch/files/elasticsearch.yml
+ - source: salt://elasticsearch/files/v{{ server.version }}/elasticsearch.yml
+ - group: elasticsearch
- template: jinja
- require:
- pkg: elasticsearch_packages
+ - user: elasticsearch_user
+{%- if server.version == 2 %}
elasticsearch_logging:
file.managed:
- name: /etc/elasticsearch/logging.yml
- - source: salt://elasticsearch/files/logging.yml
+ - source: salt://elasticsearch/files/v2/logging.yml
+ - template: jinja
+ - require:
+ - pkg: elasticsearch_packages
+{%- endif %}
+
+{%- if server.version == 6 %}
+elasticsearch_telegraf_exec_plugin_script:
+ file.managed:
+ - name: /usr/local/bin/elasticsearch_check_read_only.sh
+ - source: salt://elasticsearch/files/v{{ server.version }}/es_check_read_only.sh
+ - template: jinja
+ - mode: 755
+{%- endif %}
+
+{%- if server.version in [5, 6] %}
+elasticsearch_logging:
+ file.managed:
+ - name: /etc/elasticsearch/log4j2.properties
+ - source: salt://elasticsearch/files/v{{ server.version }}/log4j2.properties
+ - group: elasticsearch
+ - template: jinja
+ - require:
+ - pkg: elasticsearch_packages
+ - user: elasticsearch_user
+
+elasticsearch_jvm_options:
+ file.managed:
+ - name: /etc/elasticsearch/jvm.options
+ - source: salt://elasticsearch/files/v{{ server.version }}/jvm.options
+ - group: elasticsearch
- template: jinja
- require:
- pkg: elasticsearch_packages
+ - user: elasticsearch_user
+
+{%- if grains.get('init') == 'systemd' %}
+elasticsearch_override_limit_memlock_file:
+ file.managed:
+ - name: /etc/systemd/system/elasticsearch.service.d/override.conf
+ - makedirs: True
+ - contents: |
+ [Service]
+ LimitMEMLOCK=infinity
+ - require:
+ - pkg: elasticsearch_packages
+ - watch_in:
+ - module: elasticsearch_restart_systemd
+
+elasticsearch_restart_systemd:
+ module.wait:
+ - name: service.systemctl_reload
+ - watch_in:
+ - service: elasticsearch_service
+{%- endif %}
+{%- endif %}
{%- if server.get('log', {}).logrotate|default(True) and not
salt['file.file_exists' ]('/etc/logrotate.d/elasticsearch') %}
service.running:
- enable: true
- name: {{ server.service }}
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
- watch:
- file: elasticsearch_config
- file: elasticsearch_logging