Skip to content
Snippets Groups Projects
post_config.yml 2.89 KiB
---
- name: Wait for kibana port
  wait_for:
    host: "{{ kolla_internal_fqdn }}"
    port: "{{ kibana_server_port }}"
  run_once: true

- name: Register the kibana index in elasticsearch
  become: true
  kolla_toolbox:
    module_name: uri
    module_args:
      url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ 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
  become: true
  kolla_toolbox:
    module_name: uri
    module_args:
      url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ 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
  vars:
    kibana_default_index_body:
      defaultIndex: "{{ kibana_default_index_pattern }}"
  become: true
  kolla_toolbox:
    module_name: uri
    module_args:
      url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ elasticsearch_port }}/.kibana/config/*"
      method: PUT
      body: "{{ kibana_default_index_body | to_json }}"
      body_format: json
      status_code: 200, 201
  run_once: true

- name: Get kibana default indexes
  become: true
  kolla_toolbox:
    module_name: uri
    module_args:
      headers:
        Content-Type: application/json
      url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ 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
  become: true
  kolla_toolbox:
    module_name: uri
    module_args:
      url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ 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