From 78f83f3e27832ad28bef5fa68510326b3a214ecd Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Tue, 10 Nov 2015 18:53:43 +0200
Subject: [PATCH] WIP installation and configuration.

---
 defaults/main.yml              |  2 ++
 handlers/main.yml              |  5 ++++
 tasks/main.yml                 | 46 ++++++++++++++++++++++++++++++++++
 templates/elasticsearch.yml.j2 |  1 +
 vars/main.yml                  |  5 ++++
 5 files changed, 59 insertions(+)
 create mode 100644 templates/elasticsearch.yml.j2

diff --git a/defaults/main.yml b/defaults/main.yml
index 2767c6d..6614d7d 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,2 +1,4 @@
 ---
 # defaults file for ansible-elasticsearch
+
+elasticsearch_cors_domains: [ 'localhost', '*.{{ ansible_domain }}' ]
diff --git a/handlers/main.yml b/handlers/main.yml
index 2a963e0..bc808f3 100644
--- a/handlers/main.yml
+++ b/handlers/main.yml
@@ -1,2 +1,7 @@
 ---
 # handlers file for ansible-elasticsearch
+
+- name: Restart Elasticsearch
+  service:
+    name: elasticsearch
+    state: restarted
diff --git a/tasks/main.yml b/tasks/main.yml
index 489a418..f86d561 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,2 +1,48 @@
 ---
 # tasks file for ansible-elasticsearch
+
+- name: Add apt repo key
+  apt_key:
+    url: https://packages.elastic.co/GPG-KEY-elasticsearch
+    state: present
+
+- name: Add apt repo
+  apt_repository:
+    repo: deb http://packages.elastic.co/elasticsearch/2.x/debian stable main
+    state: present
+    update_cache: yes
+
+- name: apt install
+  with_items:
+  - openjdk-7-jre-headless
+  - elasticsearch
+  apt:
+    name: '{{ item }}'
+    state: present
+    update_cache: yes
+    cache_valid_time: 3600
+
+- name: Set Java options
+  lineinfile:
+    dest: /etc/default/elasticsearch
+    line: "ES_JAVA_OPTS='-Djava.net.preferIPv4Stack=true'"
+    regexp: '^ES_JAVA_OPTS='
+    state: present
+  notify:
+  - Restart Elasticsearch
+
+- name: Copy configutation template
+  template:
+    src: elasticsearch.yml.j2
+    dest: /etc/elasticsearch/elasticsearch.yml
+    owner: root
+    group: root
+    mode: '0644'
+  notify:
+  - Restart Elasticsearch
+
+- name: Enable, start Elasticsearch service
+  service:
+    name: elasticsearch
+    state: started
+    enabled: yes
diff --git a/templates/elasticsearch.yml.j2 b/templates/elasticsearch.yml.j2
new file mode 100644
index 0000000..1b7f762
--- /dev/null
+++ b/templates/elasticsearch.yml.j2
@@ -0,0 +1 @@
+{{ elasticsearch_config|to_nice_yaml }}
diff --git a/vars/main.yml b/vars/main.yml
index aa4fb42..c975e64 100644
--- a/vars/main.yml
+++ b/vars/main.yml
@@ -1,2 +1,7 @@
 ---
 # vars file for ansible-elasticsearch
+
+elasticsearch_config:
+  http.cors.enabled: true
+  'http.cors.allow-origin': '{{ elasticsearch_cors_domains }}'
+  indices.fielddata.cache.size: '50%'
-- 
GitLab