Fixes handler and file issues with ES templates

Fixes an issue with handlers in Ansible 2.2.1+
[https://github.com/ansible/ansible/issues/20603](). Moves the
load-templates handler to the top of the file to get around this
issue.

Fixes an issue loading installed templates into ES. The use of
file lookup meant that the template files are checked on the
machine that initiated the Ansible play, this only works if Ansible
has been run locally, breaking for remote machines. Switched to
using the slurp module to grab file contents on the target machine.
This commit is contained in:
David Reed 2017-05-06 20:22:22 +01:00
parent 8002829bbe
commit 4826f981d7
2 changed files with 19 additions and 17 deletions

View file

@ -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