--- - 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 apt: name=apt-transport-https state=present when: es_use_repository - name: Debian - Add Elasticsearch repository key become: yes apt_key: url="{{ es_apt_key }}" id="{{ es_apt_key_id }}" state=present when: es_use_repository and es_apt_key - name: Debian - Add elasticsearch repository become: yes apt_repository: repo={{ item.repo }} state={{ item.state}} with_items: - { repo: "{{ es_apt_url_old }}", state: "absent" } - { repo: "{{ es_apt_url }}", state: "present" } when: es_use_repository - name: Gracefully stop and remove elasticsearch if we are switching to the oss version when: - es_package_name == 'elasticsearch-oss' 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: "{{ es_conf_dir }}" - 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: "{{ es_conf_dir }}"