From d62666b45521cb7b907aa0ed320a7a1c49cf2306 Mon Sep 17 00:00:00 2001
From: Kevin Carter <kevin.carter@rackspace.com>
Date: Wed, 15 Aug 2018 21:35:31 -0500
Subject: [PATCH] Add basic index templates

The basic index template will ensure that the replication policy is
enforced on the revolving indexes we know will exist.

Change-Id: I1e3edcfd00a73cbdd328d50e8ba6492ac2248b72
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
---
 elk_metrics_6x/createElasticIndexes.yml       | 47 ++++++++++++++++++-
 .../elastic_kibana/templates/nginx_default.j2 |  2 +
 2 files changed, 48 insertions(+), 1 deletion(-)

diff --git a/elk_metrics_6x/createElasticIndexes.yml b/elk_metrics_6x/createElasticIndexes.yml
index 2b7c45c1..95f6c689 100644
--- a/elk_metrics_6x/createElasticIndexes.yml
+++ b/elk_metrics_6x/createElasticIndexes.yml
@@ -34,7 +34,7 @@
       register: elk_indexes
       until: elk_indexes is success
       retries: 3
-      delay: 5
+      delay: 10
       with_items:
         - name: "osprofiler-notifications"
           index_options:
@@ -55,3 +55,48 @@
         - 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 }}"
diff --git a/elk_metrics_6x/roles/elastic_kibana/templates/nginx_default.j2 b/elk_metrics_6x/roles/elastic_kibana/templates/nginx_default.j2
index 4bd3bf94..e295e4dc 100644
--- a/elk_metrics_6x/roles/elastic_kibana/templates/nginx_default.j2
+++ b/elk_metrics_6x/roles/elastic_kibana/templates/nginx_default.j2
@@ -3,8 +3,10 @@ server {
 
     server_name {{ kibana_server_name }};
 
+{% if kibana_enable_basic_auth | bool %}
     auth_basic "Restricted Access";
     auth_basic_user_file /etc/nginx/htpasswd.users;
+{% endif %}
 
     location / {
         proxy_pass http://127.0.0.1:{{ kibana_port }};