ansible-role-elasticsearch/tasks/elasticsearch-plugins.yml
Artem Alexandrov 717dd74a9f Removed bare variables
Issue #86
2016-03-25 11:20:23 +03:00

54 lines
2.2 KiB
YAML

---
#es_plugins_reinstall will be set to true if elasticsearch_install.changed i.e. we have changed ES version, or if no plugins listed. Otherwise it is false and requires explicitly setting.
- set_fact: es_plugins_reinstall=true
when: elasticsearch_install.changed or es_plugins is not defined or es_plugins is none
- set_fact: list_command="list"
- set_fact: list_command="--list"
when: es_version | version_compare('2.0', '<')
#List currently installed plugins
- shell: "{{es_home}}/bin/plugin {{list_command}} | sed -n '1!p' | cut -d '-' -f2-"
register: installed_plugins
changed_when: False
environment:
CONF_DIR: "{{ conf_dir }}"
ES_INCLUDE: "{{ instance_default_file }}"
#This needs to removes any currently installed plugins
- name: Remove elasticsearch plugins
command: "{{es_home}}/bin/plugin remove {{item}} --silent"
ignore_errors: yes
with_items: "{{ installed_plugins.stdout_lines }}"
when: es_plugins_reinstall and installed_plugins.stdout_lines | length > 0 and not 'No plugin detected' in installed_plugins.stdout_lines[0]
notify: restart elasticsearch
environment:
CONF_DIR: "{{ conf_dir }}"
ES_INCLUDE: "{{ instance_default_file }}"
- name: Install elasticsearch plugins
#debug: var=item
command: >
{{es_home}}/bin/plugin install
{{ item.plugin }}{% if item.version is defined and item.version != '' %}/{{ item.version }}{% endif %}
{% if item.proxy_host is defined and item.proxy_host != '' and item.proxy_port is defined and item.proxy_port != ''%}
-DproxyHost={{ item.proxy_host }} -DproxyPort={{ item.proxy_port }}
{% elif es_proxy_host is defined and es_proxy_host != '' %}
-DproxyHost={{ es_proxy_host }} -DproxyPort={{ es_proxy_port }}
{% endif %}
--silent
register: plugin_installed
failed_when: "'Failed to install' in plugin_installed.stderr"
changed_when: plugin_installed.rc == 0
with_items: "{{ es_plugins }}"
when: es_plugins is defined and not es_plugins is none
notify: restart elasticsearch
environment:
CONF_DIR: "{{ conf_dir }}"
ES_INCLUDE: "{{ instance_default_file }}"
#Set permissions on plugins directory
- name: Set Plugin Directory Permissions
file: state=directory path={{ plugin_dir }} owner={{ es_user }} group={{ es_group }} recurse=yes