kolla-ansible/ansible/roles/kibana/tasks/post_config.yml
Mark Goddard 76c83a4096 Allow 400 response when creating kibana ES index
If the index already exists, kibana will respond with a 400 error. This
is required to support reconfigure and upgrade of kibana.

Change-Id: Ieee6d636fe81692dffb886f917b8398df10a525f
2018-08-03 12:50:21 +01:00

72 lines
2.3 KiB
YAML

---
- name: Wait for kibana port
wait_for:
host: "{{ kolla_internal_vip_address }}"
port: "{{ kibana_server_port }}"
run_once: true
- name: Register the kibana index in elasticsearch
uri:
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana"
method: PUT
body: "{{ kibana_default_index_options | to_json }}"
body_format: json
status_code: 200, 201, 400
register: result
failed_when:
# If the index already exists, Elasticsearch will respond with a 400 error.
- result.status == 400
# Format: {"json": {"error": {"type": "index_already_exists_exception"}}}
- result.get('json', {}).get('error', {}).get('type') != 'index_already_exists_exception'
run_once: true
- name: Wait for kibana to register in elasticsearch
uri:
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana"
status_code: 200
register: result
until: result.status == 200
retries: 20
delay: 2
run_once: true
- name: Change kibana config to set index as defaultIndex
uri:
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana/config/*"
method: PUT
body:
defaultIndex: "{{ kibana_default_index_pattern }}"
body_format: json
status_code: 200, 201
run_once: true
- name: Get kibana default indexes
uri:
HEADER_Content-Type: application/json
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana"
method: GET
register: kibana_default_indexes
run_once: true
when: kibana_default_index is defined
- name: Set kibana default indexes fact
set_fact:
kibana_default_indexes: "{{ kibana_default_indexes.json | default([]) }}"
when:
- kibana_default_indexes is defined
run_once: true
connection: local
- name: Add index pattern to kibana
uri:
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana/index-pattern/{{ kibana_default_index_pattern }}"
method: PUT
body: "{{ kibana_default_index | to_json }}"
body_format: json
status_code: 201
run_once: true
when:
- kibana_default_index is defined
- kibana_default_indexes is defined
- kibana_default_indexes['.kibana']['mappings']['config']['properties']['defaultIndex'] is not defined