diff --git a/elk_metrics_7x/roles/elastic_ilm/tasks/elastic_ilm_update_policy.yml b/elk_metrics_7x/roles/elastic_ilm/tasks/elastic_ilm_update_policy.yml index 858c4f15..d58b9013 100644 --- a/elk_metrics_7x/roles/elastic_ilm/tasks/elastic_ilm_update_policy.yml +++ b/elk_metrics_7x/roles/elastic_ilm/tasks/elastic_ilm_update_policy.yml @@ -17,6 +17,18 @@ body_format: json when: check_policy.status == 200 and ilm_policy_name is defined and ilm_policy is defined and (elk_package_state | default('present')) != "latest" + +# If e.g. the ilm_policy_name has changed, the ILM policy may not exist, and needs to be pushed +- name: Add ILM policy if non-existent + uri: + url: "http://127.0.0.1:{{ elastic_port }}/_ilm/policy/{{ ilm_policy_name }}" + method: PUT + body: "{{ ilm_policy }}" + status_code: 200 + body_format: json + when: check_policy.status == 404 and ilm_policy_name is defined and ilm_policy is defined and (elk_package_state | default('present')) != "latest" + + - name: Get template uri: url: "http://127.0.0.1:{{ elastic_port }}/_template/{{ ilm_policy_template }}/" @@ -27,7 +39,7 @@ when: ilm_policy_template is defined and ilm_policy_name is defined - set_fact: - updated_template: "{{ template.json | combine({template.json.keys()[0]|string:{'settings': {'index': {'lifecycle': {'name': 'ilm_policy_name' }}}}}, recursive=True) }}" + updated_template: "{{ template.json | combine({template.json.keys()[0]|string:{'settings': {'index': {'lifecycle': {'name': ilm_policy_name }}}}}, recursive=True) }}" when: template.status == 200 and ilm_policy_template is defined and ilm_policy_name is defined - name: Update template