Files
Phraseanet/resources/ansible/roles/elasticsearch/tasks/main.yml

63 lines
1.9 KiB
YAML

---
# Watch repositories task to retrieve repository add
- name: Check Elastic Search installation
shell: apt-cache policy elasticsearch | grep -Po 'Installed:\s(.*)' | cut -d' ' -f 2;
changed_when: false
register: install_status
- name: Set installed variable
set_fact: is_installed='{{ install_status.stdout == elasticsearch.version }}'
- name: Set dependencies License
shell: echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
changed_when: false
- name: Install Dependencies
apt: pkg=openjdk-7-jre state=latest
- name: Remove temporary debian package
shell: rm -f /tmp/elasticsearch-{{ elasticsearch.version }}.deb
when: not is_installed
- name: Download debian package
get_url: >
url={{ elasticsearch_url }}
dest=/tmp/elasticsearch-{{ elasticsearch.version }}.deb
when: not is_installed
- name: Install debian package
apt: deb=/tmp/elasticsearch-{{ elasticsearch.version }}.deb
when: not is_installed
- name: Remove old plugin directory
shell: rm -rf /usr/share/elasticsearch/plugins/analysis-icu
sudo: yes
- name: Install plugins
shell: /usr/share/elasticsearch/bin/plugin install {{ item.name }}
when: not is_installed
with_items: "{{ elasticsearch.plugins }}"
- name: Configure Elasticsearch.
lineinfile:
dest: /etc/elasticsearch/elasticsearch.yml
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
state: present
with_items:
- { regexp: '^#? ?network\.host', line: 'network.host: {{ elasticsearch.host }}' }
- { regexp: '^#? ?http\.port', line: 'http.port: {{ elasticsearch.port }}' }
- name: Flush handlers to apply config changes
meta: flush_handlers
- name: Enable Service
service: name=elasticsearch enabled=yes
- name: Ensure Elastic Search is started
service: name=elasticsearch state=started
- name: Remove tmp files
file: path=/tmp/elasticsearch-{{ elasticsearch.version }}.deb state=absent
when: not is_installed