diff --git a/handlers/elasticsearch-templates.yml b/handlers/elasticsearch-templates.yml index b1ff63a..09bee24 100644 --- a/handlers/elasticsearch-templates.yml +++ b/handlers/elasticsearch-templates.yml @@ -6,29 +6,29 @@ - name: Wait for elasticsearch to startup wait_for: host={{es_api_host}} port={{es_api_port}} delay=10 -- name: Get template files - find: paths="/etc/elasticsearch/templates" patterns="*.json" - register: templates - - name: Install templates without auth uri: - url: "http://{{es_api_host}}:{{es_api_port}}/_template/{{item.path | filename}}" + url: "http://{{es_api_host}}:{{es_api_port}}/_template/{{item | filename}}" method: PUT status_code: 200 body_format: json - body: "{{ lookup('file', item.path) }}" + body: "{{ lookup('file', item) }}" when: not es_enable_xpack or not es_xpack_features is defined or "security" not in es_xpack_features - with_items: "{{ templates.files }}" + with_fileglob: + - "{{ es_templates_fileglob | default('') }}" + run_once: True - name: Install templates with auth uri: - url: "http://{{es_api_host}}:{{es_api_port}}/_template/{{item.path | filename}}" + url: "http://{{es_api_host}}:{{es_api_port}}/_template/{{item | filename}}" method: PUT status_code: 200 user: "{{es_api_basic_auth_username}}" password: "{{es_api_basic_auth_password}}" force_basic_auth: yes body_format: json - body: "{{ lookup('file', item.path) }}" + body: "{{ lookup('file', item) }}" when: es_enable_xpack and es_xpack_features is defined and "security" in es_xpack_features - with_items: "{{ templates.files }}" + with_fileglob: + - "{{ es_templates_fileglob | default('') }}" + run_once: True diff --git a/handlers/main.yml b/handlers/main.yml index fbfcfa5..1db4471 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,14 +1,3 @@ -- name: reload systemd configuration - command: systemctl daemon-reload - -# Restart service and ensure it is enabled -- name: restart elasticsearch - service: name={{instance_init_script | basename}} state=restarted enabled=yes - when: - - es_restart_on_change - - es_start_service - - ((plugin_installed is defined and plugin_installed.changed) or (config_updated is defined and config_updated.changed) or (xpack_state.changed) or (debian_elasticsearch_install_from_repo.changed or redhat_elasticsearch_install_from_repo.changed or elasticsearch_install_from_package.changed)) - register: es_restarted #Templates are a handler as they need to come after a restart e.g. suppose user removes security 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. @@ -17,4 +6,5 @@ - name: load-templates include: ./handlers/elasticsearch-templates.yml #only do templates if we're starting - when: es_templates and es_start_service \ No newline at end of file + when: es_templates and es_start_service + when: es_templates \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml index 9beffa1..220a136 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -42,6 +42,18 @@ tags: - templates +- name: reload systemd configuration + command: systemctl daemon-reload + +# Restart service and ensure it is enabled +- name: restart elasticsearch + service: name={{instance_init_script | basename}} state=restarted enabled=yes + when: + - es_restart_on_change + - es_start_service + - ((plugin_installed is defined and plugin_installed.changed) or (config_updated is defined and config_updated.changed) or (xpack_state.changed) or (debian_elasticsearch_install_from_repo.changed or redhat_elasticsearch_install_from_repo.changed or elasticsearch_install_from_package.changed)) + register: es_restarted + - meta: flush_handlers - name: Make sure elasticsearch is started