diff --git a/defaults/main.yml b/defaults/main.yml index c6f63b1..1b707e0 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,5 +1,4 @@ --- -elasticsearch: - major_version: "1.5" - version: "1.5.2" - start_service: true +es_major_version: "1.5" +es_version: "1.5.2" +es_start_service: true diff --git a/tasks/elasticsearch-Debian.yml b/tasks/elasticsearch-Debian.yml index dad14f9..85c22cc 100644 --- a/tasks/elasticsearch-Debian.yml +++ b/tasks/elasticsearch-Debian.yml @@ -1,8 +1,8 @@ --- -- name: Add Elasticsearch repository key +- name: Debian - Add Elasticsearch repository key apt_key: url="http://packages.elasticsearch.org/GPG-KEY-elasticsearch" state=present -- name: add elasticsearch repository - apt_repository: repo="deb http://packages.elastic.co/elasticsearch/{{ elasticsearch.major_version }}/debian stable main" state=present -- name: Ensure elasticsearch is installed. - apt: name=elasticsearch={{ elasticsearch.version }} state=present cache_valid_time=86400 +- name: Debian - add elasticsearch repository + apt_repository: repo="deb http://packages.elastic.co/elasticsearch/{{ es_major_version }}/debian stable main" state=present +- name: Debian - Ensure elasticsearch is installed. + apt: name=elasticsearch={{ es_version }} state=present cache_valid_time=86400 register: elasticsearch_install diff --git a/tasks/elasticsearch-RedHat.yml b/tasks/elasticsearch-RedHat.yml index 24cc880..8907a8f 100644 --- a/tasks/elasticsearch-RedHat.yml +++ b/tasks/elasticsearch-RedHat.yml @@ -1,8 +1,8 @@ --- - name: RedHat - add Elasticsearch repo - template: src=elasticsearch.repo dest=/etc/yum.repos.d/elasticsearch-{{ elasticsearch.major_version }}.repo + template: src=elasticsearch.repo dest=/etc/yum.repos.d/elasticsearch-{{ es_major_version }}.repo - name: RedHat - Install Elasticsearch - yum: name=elasticsearch-{{ elasticsearch.version }} state=present update_cache=yes + yum: name=elasticsearch-{{ es_version }} state=present update_cache=yes register: elasticsearch_install diff --git a/tasks/elasticsearch-plugins.yml b/tasks/elasticsearch-plugins.yml new file mode 100644 index 0000000..0d72421 --- /dev/null +++ b/tasks/elasticsearch-plugins.yml @@ -0,0 +1,15 @@ +--- +- name: Remove elasticsearch plugins + command: /usr/share/elasticsearch/bin/plugin --remove {{ item.plugin }} --silent + ignore_errors: yes + with_items: es_plugins + when: ( ansible_os_family == 'RedHat' or ansible_os_family == 'Debian' ) and es_plugins_reinstall + +- name: Install elasticsearch plugins + #debug: var=item + command: /usr/share/elasticsearch/bin/plugin --install elasticsearch/{{ item.plugin }}/{{ item.version }} --silent + register: command_result + failed_when: "'Failed to install' in command_result.stderr" + changed_when: command_result.rc == 0 + with_items: es_plugins + when: ( ansible_os_family == 'RedHat' or ansible_os_family == 'Debian' ) diff --git a/tasks/elasticsearch.yml b/tasks/elasticsearch.yml index 6d9eb95..9aceb63 100644 --- a/tasks/elasticsearch.yml +++ b/tasks/elasticsearch.yml @@ -12,9 +12,9 @@ # Make sure the service is started, and restart if necessary - name: Start elasticsearch service service: name=elasticsearch state=started - when: elasticsearch.start_service + when: es_start_service register: elasticsearch_started - name: Restart elasticsearch service if new version installed service: name=elasticsearch state=restarted - when: elasticsearch.start_service and elasticsearch_install.changed and not elasticsearch_started.changed + when: es_start_service and elasticsearch_install.changed and not elasticsearch_started.changed diff --git a/tasks/main.yml b/tasks/main.yml index 9d74063..dad05c7 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -3,3 +3,4 @@ include_vars: "{{ ansible_os_family }}.yml" - include: java.yml - include: elasticsearch.yml +- include: elasticsearch-plugins.yml diff --git a/templates/elasticsearch.repo b/templates/elasticsearch.repo index 6b29517..810d4c9 100644 --- a/templates/elasticsearch.repo +++ b/templates/elasticsearch.repo @@ -1,6 +1,6 @@ -[elasticsearch-{{ elasticsearch.major_version }}] -name=Elasticsearch repository for {{ elasticsearch.major_version }}.x packages -baseurl=http://packages.elastic.co/elasticsearch/{{ elasticsearch.major_version }}/centos +[elasticsearch-{{ es_major_version }}] +name=Elasticsearch repository for {{ es_major_version }}.x packages +baseurl=http://packages.elastic.co/elasticsearch/{{ es_major_version }}/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enabled=1