115 lines
3.7 KiB
YAML
115 lines
3.7 KiB
YAML
---
|
|
|
|
- name: set fact force_install to no
|
|
set_fact: force_install=no
|
|
|
|
- name: set fact force_install to yes
|
|
set_fact: force_install=yes
|
|
when: es_allow_downgrades
|
|
|
|
- name: Gracefully stop and remove elasticsearch package if switching between OSS and standard
|
|
become: yes
|
|
block:
|
|
- name: Check if the elasticsearch package is installed
|
|
shell: "dpkg-query -W -f'${Status}' {{ es_other_package_name }}"
|
|
register: elasticsearch_package
|
|
failed_when: False
|
|
changed_when: False
|
|
check_mode: no
|
|
|
|
- name: unhold elasticsearch package when switching to a different package type
|
|
become: yes
|
|
dpkg_selections:
|
|
name: "{{ es_other_package_name }}"
|
|
selection: "install"
|
|
when: elasticsearch_package.stdout == 'install ok installed'
|
|
|
|
- name: stop elasticsearch
|
|
service:
|
|
name: 'elasticsearch'
|
|
state: stopped
|
|
when: elasticsearch_package.stdout == 'install ok installed'
|
|
|
|
- name: Debian - Remove elasticsearch package if we are switching to a different package type
|
|
apt:
|
|
name: '{{ es_other_package_name }}'
|
|
state: absent
|
|
when: elasticsearch_package.stdout == 'install ok installed'
|
|
|
|
|
|
- name: Install Elasticsearch repository
|
|
when: es_use_repository
|
|
become: yes
|
|
block:
|
|
- name: Debian - Install apt-transport-https to support https APT downloads
|
|
apt:
|
|
name: apt-transport-https
|
|
state: present
|
|
|
|
- name: Debian - Add Elasticsearch repository key
|
|
apt_key:
|
|
url: '{{ es_apt_key }}'
|
|
state: present
|
|
when: es_add_repository and es_apt_key | string
|
|
|
|
- name: Debian - Add elasticsearch repository
|
|
apt_repository:
|
|
repo: '{{ item.repo }}'
|
|
state: '{{ item.state }}'
|
|
when: es_add_repository
|
|
with_items:
|
|
- { repo: "{{ es_apt_url_old }}", state: "absent" }
|
|
- { repo: "{{ es_apt_url }}", state: "present" }
|
|
- { repo: "{{ es_other_apt_url }}", state: "absent" }
|
|
|
|
- name: Include optional user and group creation.
|
|
when: (es_user_id is defined) and (es_group_id is defined)
|
|
include: elasticsearch-optional-user.yml
|
|
|
|
- name: Debian - Get installed elasticsearch version
|
|
command: dpkg-query --showformat='${Version}' --show {{ es_package_name }}
|
|
register: installed_es_version
|
|
failed_when: False
|
|
changed_when: False
|
|
check_mode: no
|
|
|
|
- name: Debian - unhold elasticsearch version
|
|
become: yes
|
|
dpkg_selections:
|
|
name: "{{ es_package_name }}"
|
|
selection: "install"
|
|
when: not es_version_lock or (installed_es_version.stdout and installed_es_version.stdout != es_version)
|
|
|
|
- name: Debian - Ensure elasticsearch is installed
|
|
become: yes
|
|
apt:
|
|
name: '{{ es_package_name }}{% if es_version is defined and es_version != "" %}={{ es_version }}{% endif %}'
|
|
state: present
|
|
force: '{{ force_install }}'
|
|
allow_unauthenticated: "{{ 'no' if es_apt_key else 'yes' }}"
|
|
cache_valid_time: 86400
|
|
when: es_use_repository
|
|
register: debian_elasticsearch_install_from_repo
|
|
notify: restart elasticsearch
|
|
environment:
|
|
ES_PATH_CONF: "/etc/elasticsearch"
|
|
|
|
- name: Debian - hold elasticsearch version
|
|
become: yes
|
|
dpkg_selections:
|
|
name: "{{ es_package_name }}"
|
|
selection: "hold"
|
|
when: es_version_lock
|
|
|
|
- name: Debian - Download elasticsearch from url
|
|
get_url: url={% if es_custom_package_url is defined %}{{ es_custom_package_url }}{% else %}{{ es_package_url }}-{{ es_version }}.deb{% endif %} dest=/tmp/elasticsearch-{{ es_version }}.deb validate_certs=no
|
|
when: not es_use_repository
|
|
|
|
- name: Debian - Ensure elasticsearch is installed from downloaded package
|
|
become: yes
|
|
apt: deb=/tmp/elasticsearch-{{ es_version }}.deb
|
|
when: not es_use_repository
|
|
register: elasticsearch_install_from_package
|
|
notify: restart elasticsearch
|
|
environment:
|
|
ES_PATH_CONF: "/etc/elasticsearch"
|