Skip to content

Commit 0fd268c

Browse files
author
gingerwizard
committed
Merge pull request elastic#56 from gingerwizard/master
Restart on Change, Cleanup + better restart
2 parents 5d78541 + 183513e commit 0fd268c

File tree

11 files changed

+59
-26
lines changed

11 files changed

+59
-26
lines changed

defaults/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ es_version: "2.1.0"
44
es_version_lock: false
55
es_use_repository: true
66
es_start_service: true
7+
es_restart_on_change: true
78
es_plugins_reinstall: false
89
es_scripts: false
910
es_templates: false

handlers/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11

22
- name: restart elasticsearch
33
service: name={{instance_init_script | basename}} state=restarted enabled=yes
4-
when: es_start_service and (not elasticsearch_started.changed or (plugin_installed is defined and plugin_installed.changed))
4+
when: es_restart_on_change and es_start_service and (not elasticsearch_started.changed or (plugin_installed is defined and plugin_installed.changed) or elasticsearch_install.changed)

tasks/elasticsearch-config.yml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@
1010
#Relies on elasticsearch distribution installing a serviced script to determine whether one should be copied.
1111

1212

13-
- stat: path={{sysd_script}}
14-
register: systemd_service
15-
16-
- set_fact: use_system_d={{systemd_service.stat.exists and ((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', '>='))) }}
13+
- 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', '>=')) }}
1714

1815
- set_fact: instance_sysd_script={{sysd_script | dirname }}/{{es_instance_name}}_{{sysd_script | basename}}
1916
when: use_system_d
@@ -81,3 +78,17 @@
8178
notify: restart elasticsearch
8279

8380
#Clean up un-wanted package scripts to avoid confusion
81+
82+
- name: Delete Default Init
83+
file: dest=/etc/init.d/elasticsearch state=absent
84+
85+
- name: Delete Default Environment File
86+
file: dest=/etc/default/elasticsearch state=absent
87+
when: ansible_os_family == 'Debian'
88+
89+
- name: Delete Default Environment File
90+
file: dest=/etc/sysconfig/elasticsearch state=absent
91+
when: ansible_os_family == 'RedHat'
92+
93+
- name: Delete Default Sysconfig File
94+
file: dest=/usr/lib/systemd/system/elasticsearch.service state=absent

tasks/elasticsearch-plugins.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
---
22

3+
#es_plugins_reinstall will be set to true if elasticsearch_install.changed i.e. we have changed ES version
4+
- set_fact: es_plugins_reinstall=true
5+
when: elasticsearch_install.changed
6+
7+
#List currently installed plugins
8+
9+
10+
11+
#This needs to removed installed plugins not those listed
312
- name: Remove elasticsearch plugins
413
command: "{{es_home}}/bin/plugin remove {{ item.plugin }} --silent"
514
ignore_errors: yes
615
with_items: es_plugins
7-
when: ( ansible_os_family == 'RedHat' or ansible_os_family == 'Debian' ) and es_plugins_reinstall
16+
when: es_plugins_reinstall
817
notify: restart elasticsearch
918
environment:
1019
CONF_DIR: "{{ conf_dir }}"

tasks/elasticsearch-service.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Make sure the service is started, and restart if necessary
2+
- name: Start elasticsearch service
3+
service: name={{instance_init_script | basename}} state=started enabled=yes
4+
when: es_start_service
5+
register: elasticsearch_started
6+

tasks/elasticsearch.yml

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,14 @@
88

99
- debug: msg="Node configuration {{ es_config }} "
1010

11-
# Install OS specific elasticsearch - this can be abbreviated in version 2.0.0
11+
#- name: Include specific Elasticsearch
12+
# include: "elasticsearch-{{ansible_os_family}}.yml"
13+
14+
#Install OS specific elasticsearch - this can be abbreviated in version 2.0.0
1215
- name: Include specific Elasticsearch
1316
include: elasticsearch-Debian.yml
1417
when: ansible_os_family == 'Debian'
1518

1619
- name: Include specific Elasticsearch
1720
include: elasticsearch-RedHat.yml
1821
when: ansible_os_family == 'RedHat'
19-
20-
#Configuration file for elasticsearch
21-
- name: Elasticsearch configuration
22-
include: elasticsearch-config.yml
23-
24-
# Make sure the service is started, and restart if necessary
25-
- name: Start elasticsearch service
26-
service: name={{instance_init_script | basename}} state=started enabled=yes
27-
when: es_start_service
28-
register: elasticsearch_started
29-
30-
- name: Restart elasticsearch service if new version installed
31-
service: name={{instance_init_script | basename}} state=restarted enabled=yes
32-
when: es_start_service and elasticsearch_install.changed and not elasticsearch_started.changed

tasks/main.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
include_vars: "{{ansible_os_family}}.yml"
66
- include: java.yml
77
- include: elasticsearch.yml
8-
- include: elasticsearch-plugins.yml
9-
when: es_plugins is defined
8+
- include: elasticsearch-config.yml
109
- include: elasticsearch-scripts.yml
1110
when: es_scripts
11+
- include: elasticsearch-plugins.yml
12+
when: es_plugins is defined
13+
- include: elasticsearch-service.yml
1214
- include: elasticsearch-templates.yml
1315
when: es_templates
1416
- meta: flush_handlers

test/integration/helpers/serverspec/standard_spec.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,21 @@
4747
end
4848
end
4949

50+
describe file('/etc/init.d/elasticsearch') do
51+
it { should_not exist }
52+
end
53+
54+
describe file('/etc/default/elasticsearch') do
55+
it { should_not exist }
56+
end
57+
58+
describe file('/etc/sysconfig/elasticsearch') do
59+
it { should_not exist }
60+
end
61+
62+
describe file('/usr/lib/systemd/system/elasticsearch.service') do
63+
it { should_not exist }
64+
end
65+
5066
end
5167

vars/Debian.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
---
22
java: "openjdk-7-jre-headless"
33
default_file: "/etc/default/elasticsearch"
4-
init_script: "/etc/init.d/elasticsearch"
54
es_home: "/usr/share/elasticsearch"

vars/RedHat.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
---
22
java: "java-1.8.0-openjdk.x86_64"
33
default_file: "/etc/sysconfig/elasticsearch"
4-
init_script: "/etc/init.d/elasticsearch"
54
es_home: "/usr/share/elasticsearch"

vars/main.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
---
22
es_package_url: "https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch"
33
es_conf_dir: "/etc/elasticsearch"
4-
sysd_script: "/usr/lib/systemd/system/elasticsearch.service"
4+
sysd_script: "/usr/lib/systemd/system/elasticsearch.service"
5+
init_script: "/etc/init.d/elasticsearch"

0 commit comments

Comments
 (0)