Templates now invoked as handler to cover edge cases
This commit is contained in:
parent
048fd63602
commit
31cc54ddbc
3 changed files with 29 additions and 20 deletions
16
handlers/elasticsearch-templates.yml
Normal file
16
handlers/elasticsearch-templates.yml
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Ensure elasticsearch is started
|
||||||
|
service: name={{instance_init_script | basename}} state=started enabled=yes
|
||||||
|
|
||||||
|
- name: Wait for elasticsearch to startup
|
||||||
|
wait_for: port={{es_api_port}} delay=10
|
||||||
|
|
||||||
|
- name: Get template files
|
||||||
|
shell: find . -maxdepth 1 -type f | sed "s#\./##" | sed "s/.json//" chdir=/etc/elasticsearch/templates
|
||||||
|
register: resultstemplate
|
||||||
|
|
||||||
|
#The basic auth details here may not be required - send always if they are defined. If not needed they will be ignored.
|
||||||
|
- name: Install template(s) with auth
|
||||||
|
command: "curl -sL -XPUT http://{{es_api_host}}:{{es_api_port}}/_template/{{item}} -d @/etc/elasticsearch/templates/{{item}}.json {% if es_api_basic_auth_username is defined and es_api_basic_auth_password is defined%}-u {{es_api_basic_auth_username}}:{{es_api_basic_auth_password}}{% endif %}"
|
||||||
|
with_items: "{{ resultstemplate.stdout_lines }}"
|
||||||
|
|
@ -6,3 +6,12 @@
|
||||||
- name: load-native-realms
|
- name: load-native-realms
|
||||||
include: ./handlers/shield/elasticsearch-shield-native.yml
|
include: ./handlers/shield/elasticsearch-shield-native.yml
|
||||||
when: (es_users is defined and es_users.native is defined) or (es_roles is defined and es_roles.native is defined)
|
when: (es_users is defined and es_users.native is defined) or (es_roles is defined and es_roles.native is defined)
|
||||||
|
|
||||||
|
|
||||||
|
#Templates are a handler as they need to come after a restart e.g. suppose user removes shield on a running node and doesn't
|
||||||
|
#specify es_api_basic_auth_username and es_api_basic_auth_password. The templates will subsequently not be removed if we don't wait for the node to restart.
|
||||||
|
#Templates done after restart therefore - as a handler.
|
||||||
|
|
||||||
|
- name: load-templates
|
||||||
|
include: ./handlers/elasticsearch-templates.yml
|
||||||
|
when: es_templates
|
||||||
|
|
@ -4,28 +4,12 @@
|
||||||
|
|
||||||
- name: Copy default templates to elasticsearch
|
- name: Copy default templates to elasticsearch
|
||||||
copy: src=templates dest=/etc/elasticsearch/ owner={{ es_user }} group={{ es_group }}
|
copy: src=templates dest=/etc/elasticsearch/ owner={{ es_user }} group={{ es_group }}
|
||||||
|
notify: load-templates
|
||||||
when: es_templates_fileglob is not defined
|
when: es_templates_fileglob is not defined
|
||||||
|
|
||||||
- name: Copy templates to elasticsearch
|
- name: Copy templates to elasticsearch
|
||||||
copy: src={{ item }} dest=/etc/elasticsearch/templates owner={{ es_user }} group={{ es_group }}
|
copy: src={{ item }} dest=/etc/elasticsearch/templates owner={{ es_user }} group={{ es_group }}
|
||||||
when: es_templates_fileglob is defined
|
when: es_templates_fileglob is defined
|
||||||
|
notify: load-templates
|
||||||
with_fileglob:
|
with_fileglob:
|
||||||
- "{{ es_templates_fileglob }}"
|
- "{{ es_templates_fileglob }}"
|
||||||
|
|
||||||
- name: Ensure elasticsearch is started
|
|
||||||
service: name={{instance_init_script | basename}} state=started enabled=yes
|
|
||||||
|
|
||||||
- name: Wait for elasticsearch to startup
|
|
||||||
wait_for: port={{es_api_port}} delay=10
|
|
||||||
|
|
||||||
- name: Get template files
|
|
||||||
shell: find . -maxdepth 1 -type f | sed "s#\./##" | sed "s/.json//" chdir=/etc/elasticsearch/templates
|
|
||||||
register: resultstemplate
|
|
||||||
|
|
||||||
#The basic auth details here may not be required - send always if they are defined. If not needed they will be ignored.
|
|
||||||
- name: Install template(s) with auth
|
|
||||||
command: "curl -sL -XPUT http://{{es_api_host}}:{{es_api_port}}/_template/{{item}} -d @/etc/elasticsearch/templates/{{item}}.json {% if es_api_basic_auth_username is defined and es_api_basic_auth_password is defined%}-u {{es_api_basic_auth_username}}:{{es_api_basic_auth_password}}{% endif %}"
|
|
||||||
with_items: "{{ resultstemplate.stdout_lines }}"
|
|
||||||
|
|
||||||
#Suppose user removes shield on a running node, doesn't specify es_api_basic_auth_username and es_api_basic_auth_password. The templates will subsequently not be removed.
|
|
||||||
#Templates should probably be done after a restart therefore - as a handler.
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue