115 lines
No EOL
3.8 KiB
YAML
115 lines
No EOL
3.8 KiB
YAML
---
|
|
|
|
# Configure Elasticsearch Node
|
|
|
|
#Use systemd for the following distributions:
|
|
#
|
|
#Ubuntu 15 and up
|
|
#Debian 8 and up
|
|
#Centos 7 and up
|
|
#Relies on elasticsearch distribution installing a serviced script to determine whether one should be copied.
|
|
|
|
|
|
- set_fact: use_system_d={{(ansible_distribution == 'Debian' and ansible_distribution_version | version_compare('8', '>=')) or (ansible_distribution == 'CentOS' and ansible_distribution_version | version_compare('7', '>=')) or (ansible_distribution == 'Ubuntu' and ansible_distribution_version | version_compare('15', '>=')) }}
|
|
tags:
|
|
- always
|
|
|
|
- set_fact: instance_sysd_script={{sysd_script | dirname }}/{{es_instance_name}}_{{sysd_script | basename}}
|
|
when: use_system_d
|
|
tags:
|
|
- always
|
|
|
|
#For directories we also use the {{inventory_hostname}}-{{ es_instance_name }} - this helps if we have a shared SAN.
|
|
|
|
- set_fact: instance_suffix={{inventory_hostname}}-{{ es_instance_name }}
|
|
tags:
|
|
- always
|
|
|
|
- set_fact: pid_dir={{ es_pid_dir }}/{{instance_suffix}}
|
|
tags:
|
|
- always
|
|
|
|
- set_fact: log_dir={{ es_log_dir }}/{{instance_suffix}}
|
|
tags:
|
|
- always
|
|
|
|
- set_fact: work_dir={{ es_work_dir }}/{{instance_suffix}}
|
|
tags:
|
|
- always
|
|
|
|
#Create required directories
|
|
- name: Create Directories
|
|
file: path={{ item }} state=directory owner={{ es_user }} group={{ es_group }}
|
|
with_items:
|
|
- "{{pid_dir}}"
|
|
- "{{work_dir}}"
|
|
- "{{log_dir}}"
|
|
- "{{conf_dir}}"
|
|
- "{{plugin_dir}}"
|
|
|
|
- set_fact: data_dirs={{ es_data_dirs | append_to_list('/'+instance_suffix) }}
|
|
tags:
|
|
- always
|
|
|
|
- name: Create Data Directories
|
|
file: path={{ item }} state=directory owner={{ es_user }} group={{ es_group }}
|
|
with_items:
|
|
- "{{data_dirs}}"
|
|
|
|
|
|
#Copy the config template
|
|
- name: Copy Configuration File
|
|
template: src=elasticsearch.yml.j2 dest={{conf_dir}}/elasticsearch.yml owner={{ es_user }} group={{ es_group }} mode=0644 force=yes
|
|
notify: restart elasticsearch
|
|
|
|
#Copy the instance specific default file
|
|
- name: Copy Default File for Instance
|
|
template: src=elasticsearch.j2 dest={{instance_default_file}} mode=0644 force=yes
|
|
notify: restart elasticsearch
|
|
|
|
#Copy the instance specific init file
|
|
- name: Copy Debian Init File for Instance
|
|
template: src=init/debian/elasticsearch.j2 dest={{instance_init_script}} mode=0755 force=yes
|
|
when: ansible_os_family == 'Debian' and not use_system_d
|
|
notify: restart elasticsearch
|
|
|
|
#Copy the instance specific init file
|
|
- name: Copy Redhat Init File for Instance
|
|
template: src=init/redhat/elasticsearch.j2 dest={{instance_init_script}} mode=0755 force=yes
|
|
when: ansible_os_family == 'RedHat' and not use_system_d
|
|
notify: restart elasticsearch
|
|
|
|
#Copy the systemd specific file if systemd is installed
|
|
- name: Copy Systemd File for Instance
|
|
template: src=systemd/elasticsearch.j2 dest={{instance_sysd_script}} mode=0644 force=yes
|
|
when: use_system_d
|
|
notify: restart elasticsearch
|
|
|
|
#Copy the logging.yml
|
|
- name: Copy Logging.yml File for Instance
|
|
template: src=logging.yml.j2 dest={{conf_dir}}/logging.yml owner={{ es_user }} group={{ es_group }} mode=0644 force=yes
|
|
notify: restart elasticsearch
|
|
|
|
#Clean up un-wanted package scripts to avoid confusion
|
|
|
|
- name: Delete Default Init
|
|
file: dest=/etc/init.d/elasticsearch state=absent
|
|
|
|
- name: Delete Default Environment File
|
|
file: dest=/etc/default/elasticsearch state=absent
|
|
when: ansible_os_family == 'Debian'
|
|
|
|
- name: Delete Default Environment File
|
|
file: dest=/etc/sysconfig/elasticsearch state=absent
|
|
when: ansible_os_family == 'RedHat'
|
|
|
|
- name: Delete Default Sysconfig File
|
|
file: dest=/usr/lib/systemd/system/elasticsearch.service state=absent
|
|
|
|
- name: Delete Default Configuration File
|
|
file: dest=/etc/elasticsearch/elasticsearch.yml state=absent
|
|
|
|
- name: Delete Default Logging File
|
|
file: dest=/etc/elasticsearch/logging.yml state=absent
|
|
|
|
- debug: msg="Data Dirs {{data_dirs}}" |