--- # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - name: Create/Setup known indexes in Elasticsearch hosts: "elastic-logstash[0]" become: true vars_files: - vars/variables.yml environment: "{{ deployment_environment_variables | default({}) }}" roles: - role: elastic_retention post_tasks: - name: Create basic indexes uri: url: http://127.0.0.1:9200/{{ item.name }} method: PUT body: "{{ item.index_options | to_json }}" status_code: 200,400 body_format: json register: elk_indexes until: elk_indexes is success retries: 3 delay: 10 with_items: - name: "osprofiler-notifications" index_options: settings: index: codec: "best_compression" mapping: total_fields: limit: "10000" refresh_interval: "5s" - name: "_all/_settings?preserve_existing=true" index_options: index.refresh_interval: "10s" - name: "_all/_settings?preserve_existing=true" index_options: index.queries.cache.enabled: "true" indices.queries.cache.size: "5%" - name: "_all/_settings" index_options: index.number_of_replicas: "{{ elasticsearch_number_of_replicas | int }}" - name: Check for basic index template uri: url: http://127.0.0.1:9200/_template/basic-index-template method: HEAD failed_when: false register: check_basicIndexTemplate register: check_basicIndexTemplate until: check_basicIndexTemplate is success retries: 3 delay: 10 - name: Check for basic index template uri: url: http://127.0.0.1:9200/_template/basic-index-template method: DELETE status_code: 200 register: delete_basicIndexTemplate until: delete_basicIndexTemplate is success retries: 3 delay: 10 when: - check_basicIndexTemplate.status == 200 - name: Create basic index template uri: url: http://127.0.0.1:9200/_template/basic-index-template method: PUT body: "{{ index_option | to_json }}" status_code: 200 body_format: json register: create_basicIndexTemplate until: create_basicIndexTemplate is success retries: 3 delay: 10 vars: index_option: index_patterns: >- {{ (elastic_beat_retention_policy_hosts.keys() | list) | map('regex_replace', '(.*)', '\1-' ~ '*') | list }} settings: number_of_replicas: "{{ elasticsearch_number_of_replicas | int }}" index: mapping: total_fields: limit: "3072"